Windows IIS 服务器下配置 Flask WSGI 环境

2019-02-28 17:28:47 +08:00
 sunhk25
3262 次点击
所在节点    Python
17 条回复
uqf0663
2019-02-28 17:33:25 +08:00
难道不是应该 IIS 直接反代 Python 自己的 http 服务吗?
Patrick95
2019-02-28 17:33:58 +08:00
没在 IIS 试过。
以前用 Apache + mod_wsgi 搭过。
sunhk25
2019-02-28 18:30:37 +08:00
@uqf0663 服务器配置接触少,直接反代不太理解,就是说配置起来可行,不太难吗
sunhk25
2019-02-28 18:32:12 +08:00
@sunhk25 Apache 下的 mod cgi 配置好像挺流行的
tomczhen
2019-02-28 18:48:32 +08:00
给公司做小项目时部署过,用 wfastcgi,微软出品。
tomczhen
2019-02-28 18:57:59 +08:00
另外说一下,flask 自带的 Web server 别用在生产环节,直接反代虽然可行但不可取。
sunhk25
2019-02-28 19:08:47 +08:00
@tomczhen 原来还有 wfastcgi。

下面这个博客看起来不错可以参考。
使用 wfastcgi 在 IIS 上部署 Python Flask 应用
https://liulixiang1988.github.io/shi-yong-wfastcgizai-iisshang-bu-shu-python-flaskying-yong.html
dongxiaozhuo
2019-03-01 10:21:16 +08:00
先想想为什么要用 WSGI 或者其他 CGI。如果没有那么的必要,可以用 gevent 或者 gunicorn 直接启动为 HTTP 服务。在此之前是不是有必要用 IIS,看你自己的产品或者程序的运行情况。比如 IIS 还要处理前端。
xpresslink
2019-03-01 11:09:45 +08:00
@dongxiaozhuo 请教一下,不用 WSGI 用什么? gunicorn 和 gevent 怎么在 windows 下跑?
sunhk25
2019-03-01 11:32:21 +08:00
@dongxiaozhuo 我的情况是前提下必须是 Windows,然后最理想的是继续用 IIS 服务器
dongxiaozhuo
2019-03-01 11:51:49 +08:00
@sunhk25 是我手残,Windows 下不能 gunicorn,gevent 也不那么好用,更不要提 uwsgi 了。或许你可以参考一下 stack overflow 上老哥们的意见,https://stackoverflow.com/questions/6823316/python-on-iis-how

大概越过 IIS 直接用 Python 做 HTTP 服务更好一些。
dongxiaozhuo
2019-03-01 11:52:41 +08:00
@xpresslink 我手残了,Windows 下别用这些依赖来搞了,直接 Python 启 HTTP 服务更好。
dongxiaozhuo
2019-03-01 11:55:29 +08:00
或者 Windows Server 上启动一个 Linux 虚拟机来运行 Flask 应用。(如果 Windows Server 已经是虚拟机,不能嵌套虚拟化,还是算了。
xpresslink
2019-03-01 14:24:44 +08:00
哥给你说一下吧,当年也被这事儿折腾的够呛。

如果不太要求性能,最省事的方案就是把 IIS 停了服务,

直接安装一个绿色 Apache 然后用 Mod_WSGI 这个网上可以找到编译好的插件直接放 apache 目录里面, 设置一下 load module 就可以用了。这方案比较老旧,性能低,但是配置非常省事,全是绿色的。
百度 Windows+Apache+mod_wsgi+Flask

和这个类似的也有用 nginx FastCGI 的方案,因为 windows 没有 epoll 只能用 select,所以 nginx 的 windows 版也是打个酱油而已。
百度 Windows 下 nginx+django+flup 搭建与配置

还有一个方案是用 IIS,wFastCGI
官方
https://docs.microsoft.com/en-us/iis/configuration/system.webServer/fastCgi/application/
https://www.cnblogs.com/xiaolecn/p/5111076.html

其实历史上还有个很 B 的东西叫 HiconZoo
http://www.helicontech.com/articles/running-django-on-windows-with-performance-tests/
但是这折腾起来有点小复杂,建议不要弄了。
chengxiao
2019-03-01 21:30:23 +08:00
这个用 docker 来跑不是更好么?
sunhk25
2019-03-04 10:24:08 +08:00
@chengxiao
在生产环境用 docker 好吗,性能不会有影响吗
chengxiao
2019-03-04 10:39:44 +08:00
@sunhk25 .....docker 不就是为生产环境而生的么....要是不能用在生产环境为什么还这么多人这么多公司用呢?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/539715

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX