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 Files\Apache24\conf\extra
  3. 修改httpd.conf,有80的地方改为8022就可以了

http://localhost:8022/

修改443为4403

  1. 关闭Apache服务
  2. 进入conf配置文件中的extra文件,我的extra文件位置:D:\Program Files\Apache24\conf\extra
  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:\Users\tlw>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:\Users\tlw>

将出现的三行内容复制到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 Files\Apache24\conf文件中,修改httpd.conf内容

<VirtualHost *>
    ServerName localhost
    WSGIScriptAlias / D:\Space_GIS\gis\gisarcpy\test.wsgi
    <Directory D:\Space_GIS\gis\gisarcpy\>
        Require all granted
    </Directory>
</VirtualHost>

重启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 Files\Apache24\logs

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值