【发布时间】:2014-06-25 16:33:14
【问题描述】:
我正在尝试在 Mac 服务器上配置 apache 服务器,以同时为 Web2Py 应用程序和 Flask 应用程序提供服务。这已成为一场温和的噩梦。我希望用户能够访问以下网址
http:/my.domain.com/ - Web2py 网站
http:/my.domain.com/suburl - Flask 网站
不幸的是,当我访问 suburl 时,它总是将我带到 Web2py 站点(然后因为没有名为 suburl 的应用程序而吓坏了)。这是我的.conf 文件:
NameVirtualHost *:80
# Flask Site
<VirtualHost *:80>
ServerName my.domain.com/suburl
WSGIDaemonProcess flask-suburl user=_www group=_www
WSGIProcessGroup flask-suburl
WSGIScriptAlias /suburl /Users/myname/suburl/app.wsgi
<Directory /Users/myname/suburl>
WSGIApplicationGroup %{GLOBAL}
Order deny,allow
Allow from all
</Directory>
</VirtualHost>
# Web2py Site
<VirtualHost *:80>
ServerName my.domain.com
WSGIDaemonProcess web2py-main user=_www group=_www
WSGIProcessGroup web2py-main
WSGIScriptAlias / /Users/myname/web2py/wsgihandler.py
<Directory /Users/myname/web2py>
AllowOverride None
Order Allow,Deny
Deny from all
<Files wsgihandler.py>
Allow from all
</Files>
</Directory>
</VirtualHost>
重新排序两个 VirtualHost 定义不会做任何事情。删除 Web2py 站点允许我访问 Flask 站点。
我宁愿不将它们组合成一个 VirtualHost,因为这会导致两个应用程序共享同一个 Python 解释器出现问题,并且某些 C 扩展显然会被淘汰。
我更改了域和其他一些名称以隐藏受保护的信息。我还排除了一些处理为静态子文件夹提供服务的 AliasMatch 命令。在端口 443 上还有另一个用于 SSH 服务器的 VirtualHost,但我没有包括它,因为我希望这不会影响事情。
那么我到底要怎么做才能同时访问这两个网站,而不是让 Web2py 网站吞噬一切?
【问题讨论】:
标签: python apache flask mod-wsgi web2py