Flask:Apache Httpd 前端与 WebSocket 支持
我正在开发一个应用程序,里面用到了一个支持WebSocket的Flask容器,用来把数据流传输到服务器。我使用的是https://github.com/kennethreitz/flask-sockets这个库。然后我用gunicorn来启动服务器,一切都很顺利。
我想问的是,能不能用Apache httpd来部署一个生产环境的服务器?我看到很多帖子建议使用Nginx作为前端的网络服务器。我希望能找到一个跨平台的解决方案(既能在Windows上用,也能在Linux上用)。不过,Nginx似乎只有一个实验性的Windows版本(适用于Windows 7)。而Apache httpd则有一个稳定的Windows版本,所以如果可以的话,我想走这条路。有没有人成功地在Apache httpd上部署Flask的WebSocket?如果有的话,我很想知道该怎么做。如果这条路不可行或者效果不好,我也希望能得到一些建议。
提前谢谢大家的回复。
祝好,
Ranga
1 个回答
1
很遗憾,目前要让这样的应用程序在不同平台上运行并不容易。
Apache 支持连接到可以使用WebSocket的服务器,但它只能在符合POSIX标准的环境中运行。(Apache的事件多进程模块也只能在类似Unix的系统上运行,这些系统支持{k,e}poll
。)
另一方面,IIS 8 自带对WebSocket的支持,而且是Windows原生的。不过,让Python和IIS一起工作要么是非常复杂,要么依赖于非常过时的软件。
Gunicorn 将在R-20版本中支持Windows;这个版本的发布日期还没有确定。一旦发布,你就可以把Gunicorn当作Windows服务来运行。