栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Arcpy 2.7 Flask项目部署到Windows服务器

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Arcpy 2.7 Flask项目部署到Windows服务器

flask自带的开发Web服务器表现很差,响应慢,而且直接通过nginx进行反向代理,经常无法响应请求。有两个可以在生产环境中使用、性能良好且支持Flask程序的服务器,分别是Gunicorn和uWSGI,但是这两个模块不提供对window的支持。

因此我们需要使用mod_wsgi这个模块使得flask能够在apache上进行部署,mod_wsgi模块是一个python写的Apache的FastCGI模块。

安装

需依次安装pyhton、flask、Apache、mod_wsgi,必须要保证的是,python的版本和mod_wsgi的版本一致,python的MSC版本和Apache的VC++版本一致,否则极有可能会失败。

查看python版本

在cmd下输入命令python看到MSC版本号是v.1500,对应了VC9。

安装Apache

根据提示,下载apache_24vc9 32位,解压后,放到本地某个位置

修改默认的80和443,如不修改可能会出现如下错误

安装apache服务:httpd –k install

运行目录:在apache的bin目录下

启动apache:httpd –k start

重启apache:httpd –k restart

修改80为8022
  1. 关闭Apache服务
  2. 进入conf配置文件中的extra文件,我的extra文件位置:D:Program FilesApache24confextra
  3. 修改httpd.conf,有80的地方改为8022就可以了

http://localhost:8022/

修改443为4403
  1. 关闭Apache服务
  2. 进入conf配置文件中的extra文件,我的extra文件位置:D:Program FilesApache24confextra
  3. 修改httpd-ahssl.conf和httpd-ssl.conf中的,有443的地方改为440就可以了

https://localhost:4403/

安装mod_wsgi

https://www.lfd.uci.edu/~gohlke/pythonlibs/#mod_wsgi

根据本机环境选择相关文件下载

解析:mod_wsgi-express module-config

(arcpyenv27) C:Userstlw>mod_wsgi-express module-config
LoadFile "c:/users/tlw/.conda/envs/arcpyenv27/python27.dll"
LoadModule wsgi_module "c:/users/tlw/.conda/envs/arcpyenv27/lib/site-packages/mod_wsgi/server/mod_wsgi.pyd"
WSGIPythonHome "c:/users/tlw/.conda/envs/arcpyenv27"

(arcpyenv27) C:Userstlw>

将出现的三行内容复制到httpd.conf文件中,添加至LoadModule之后,保存。

重启Apache,没有报错表明mod_wsgi加载成功。

找到httpd.conf文件中
LoadModule vhost_alias_module modules/mod_vhost_alias.so、
Include conf/extra/httpd-vhosts.conf
这两行,把前边的“#”号注释符删掉,表示启用虚拟主机并读取httpd- vhost.conf中的虚拟主机配置来配置站点。

测试配置wsgi

在python项目目录中新建test.wsgi文件

#encoding = 'utf-8'

def application(environ,start_response):
    status = "200 Ok"
    output = b"Hello wsgi"
    response_headers=[('Content-type','text/plain'),('Content-Length',str(len(output)))]
    start_response(status,response_headers)
    return[output]

在D:Program FilesApache24conf文件中,修改httpd.conf内容


    ServerName localhost
    WSGIScriptAlias / D:Space_GISgisgisarcpytest.wsgi
    
        Require all granted
    

重启Apache

测试

http://localhost:8022/

Flask项目部署

WSGI日志查看

python - Flask WSGI日志记录在Apache2上的错误级别


python记录日志

import logging

logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(__name__)

logger.info("transform_shp2dwg:%s",successfulBool)

查看记录的日志:D:Program FilesApache24logs

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/878759.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号