我正在尝试将我的 Flask 应用程序之一部署到 apache 上的 mod_wsgi,但我遇到了麻烦,因为 apache 试图解决文件系统上的一些路由:
阿帕奇的错误日志:
[Mon Aug 06 19:18:38 2012] [error] [client ::1] File does not exist:
/srv/http/webchat/src/_publish_message, referer: http://localhost:88/webchat/chat
我说的是“一些路由”,因为身份验证(在“/”上)和重定向到“/chat”有效。
路由“_publish_message”通过 AJAX 访问,如下所示(使用 jQuery):
function publish_message(e){
e.preventDefault();
$.post('/_publish_message', {'message': "user's message taken from a text field"})
.fail(Handler.publish_error);
}
路由“_sse_stream”用作事件源的 URL。
这两个都不行!
虚拟主机配置:
<VirtualHost *:88>
ServerName webchat.dev
WSGIDaemonProcess webchat user=http group=http threads=5
WSGIScriptAlias /webchat /srv/http/webchat/src/webchat.wsgi
WSGIScriptReloading On
DocumentRoot /srv/http/webchat/src
<Directory /srv/http/webchat/src>
WSGIProcessGroup webchat
WSGIApplicationGroup %{GLOBAL}
Order deny,allow
Allow from all
</Directory>
</VirtualHost>
webchat.wsgi
文件:
import sys
sys.path.insert(0, '/srv/http/webchat/src')
from index import app as application
一个基本的“hello world”应用程序部署mod_wsgi
运行正常。我的烧瓶应用程序在使用集成到烧瓶中的开发服务器运行时表现良好。