首页 > 解决方案 > 在apache中将python flask文件夹配置为WSGI守护进程

问题描述

我正在尝试开发 python 烧瓶应用程序,并希望将应用程序配置为 apache 作为守护程序,因此我不需要在每次更改后重新启动 apache。现在的配置如下所示

httpd.conf

WSGIDaemonProcess /rapo threads=5 display-name=%{GROUP}
WSGIProcessGroup /rapo
WSGIScriptAlias /rapo /var/www/cgi-bin/pycgi/koe.wsgi

koe.wsgi 只包含

import sys
sys.path.insert(0, "/var/www/cgi-bin/pycgi")
from koe2 import app as application

在 koe2.py 中有

@app.route('/rapo')
def hello_world():
   return 'Hello, World!'

当我转到网络服务器的 /rapo/hello -path 时,我可以看到该输出,因此烧瓶可以工作,但守护程序配置不起作用(我仍然需要重新启动才能看到所做的任何更改)。这里有类似的问题,关键是名称匹配,而且确实如此。软件版本:Apache/2.4.6 (CentOS) PHP/5.4.16 mod_wsgi/3.4。

我们没有在 httpd.conf 中定义任何虚拟主机,这可能是缺少的东西,因为在这种情况下有效?谢谢你的帮助!

标签: pythonapacheflaskmod-wsgi

解决方案


Python 与 PHP 不同,源代码更改不会在下一次请求时自动重新加载。在守护模式的情况下,你至少还需要触摸 WSGI 脚本文件。您可以在以下位置找到有关如何处理重新加载的详细信息:

在文档的末尾,您将找到一种向应用程序添加代码的方法,以便无论更改什么代码文件都会自动重新加载源代码,但这应该只用于开发而不是生产。

如果进行开发,最好mod_wsgi-express从命令行使用。当您这样做时,您可以使用该--reload-on-changes选项来启用任何更改的重新加载。看:


推荐阅读