Windows IIS 部署 Flask应用


声明:本文转载自https://my.oschina.net/u/2333235/blog/1616788,转载目的在于传递更多信息,仅供学习交流之用。如有侵权行为,请联系我,我会及时删除。

之前一直都是在Liunx下部署,但无奈客户机器是window机器。因此折腾了半天,终于部署成功,并记录写下了这篇关于windows部署flask应用的 文档


环境准备


安装IIS

下载好了web platform 5.0,搜索2个插件

  • cgi

搜索CGI

  • url重写

URL重写

安装好这两个工具以后,IIS基本就配置好了。然后就是python配置了


配置python环境

  • 安装工具 wfastcgi
pip install wfastcgi 

cmd运行命令wfastcgi-enable 前提python的环境已加入path中,我是在虚拟环境中配置

输入图片说明

输入以后得到了一个python运行地址跟一个cgi的运行程序后缀是pyc,

ps:这个pyc因为是python执行后的文件所以不需要去掉一个c就可以了。 所以我们最终得到的路径应该是下面这个

"e:\test\venv\scripts\python.exe|e:\test\venv\lib\site-packages\wfastcgi.py" 

如果提示这个权限问题,请使用带管理员权限的cmd运行就可以了

我这个是在虚拟环境中

  • 配置web.config
<?xml version="1.0" encoding="UTF-8"?> <configuration>   <system.webServer>     <handlers>             <add name="car" path="car" verb="*" modules="FastCgiModule" scriptProcessor="这里复制之前的运行命令的连接" resourceType="File" />       <!-- scriptProcessor 的值来自命令行工具 wfastcgi-enable -->       <add name="FlaskFastCGI" path="*" verb="*" modules="FastCgiModule" scriptProcessor="这里复制之前的运行命令的连接" resourceType="Unspecified" requireAccess="Script" />            </handlers>     <security>          <!-- URL 重写中的特殊字符,比如加号+等等 -->         <requestFiltering allowDoubleEscaping="true"></requestFiltering>      </security>    </system.webServer>     <appSettings>     <!-- Required settings -->     <!-- 在这里指定Falsk app在模块中的具体位置,我的主程序项目文件名叫manager.py,app是实例化的Flask应用 -->      <!--因此值为manager.app -->     <add key="WSGI_HANDLER" value="manage.app" />        <add key="PYTHONPATH" value="~/" />       <!-- Optional settings -->     <!-- 需要先创建日志目录,否则报错 -->     <add key="WSGI_LOG" value="e:\\test\\web.log" />     <add key="WSGI_RESTART_FILE_REGEX" value="" />   </appSettings> </configuration> 

这样一来 python环境就部署好了,最后部署IIS


部署IIS

  • 新建一个站点

IIS部署

  • 配置处理程序映射关系

输入图片说明

  • 右键选择 添加模块映射,然后输入配置

输入图片说明

这里的可执行文件就是之前命令wfastcgi-enable 生成的路径 直接复制过来就可以了 重启IIS应用就配置成功了

如果是在windows10上部署的话,双击 处理程序映射 报错不能在此路径中使用此配置节。

如果在父级别上锁定了该节, 那么就在管理员权限下 就是administration用户下 cmd:

 %windir%\system32\inetsrv\appcmd unlock config -section:system.webServer/handlers   %windir%\system32\inetsrv\appcmd unlock config -section:system.webServer/modules 

最后

网上也有一些说使用Apache2.2 + mod_wsgi 部署,我也部署过发现,核心的mod_wsgi这个模块极其的难装

并且apache ,python ,mod_wsgi ,操作系统 都非常具有要求。所以就放弃了这种安装方式。直接使用IIS方便

如果这篇文章帮助到你了,请记得点个赞 。 并且欢迎转发跟收藏 !

本文发表于2018年02月01日 20:31
(c)注:本文转载自https://my.oschina.net/u/2333235/blog/1616788,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如有侵权行为,请联系我们,我们会及时删除.

阅读 2590 讨论 0 喜欢 0

抢先体验

扫码体验
趣味小程序
文字表情生成器

闪念胶囊

你要过得好哇,这样我才能恨你啊,你要是过得不好,我都不知道该恨你还是拥抱你啊。

直抵黄龙府,与诸君痛饮尔。

那时陪伴我的人啊,你们如今在何方。

不出意外的话,我们再也不会见了,祝你前程似锦。

这世界真好,吃野东西也要留出这条命来看看

快捷链接
网站地图
提交友链
Copyright © 2016 - 2021 Cion.
All Rights Reserved.
京ICP备2021004668号-1