使用 apache2 和 mod_wsgi 在根目录下为一个烧瓶应用程序提供服务,在不同路径下提供另一个烧瓶应用程序
Serve one flask app at root and another at a different path with apache2 and mod_wsgi
我正在尝试直接在本地主机上提供一个烧瓶应用程序,并在 localhost/menus 上提供另一个。
当我的apache配置是这样的:
<VirtualHost *:80>
ServerName localhost
# logs configuration -------------------------------------------------
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
# front page ---------------------------------------------------------
WSGIDaemonProcess flask_ac user=#1000 group=#1000 threads=5
WSGIScriptAlias /front /var/www/flask_ac/hookup.wsgi
<Directory /var/www/flask_ac>
WSGIProcessGroup flask_ac
WSGIApplicationGroup flask_ac
Require all granted
</Directory>
# start menus --------------------------------------------------------
WSGIDaemonProcess menus user=#1000 group=#1000 threads=5
WSGIScriptAlias /menus /var/www/flask_ac/projects/menus/hookup.wsgi
<Directory "/var/www/flask_ac/projects/menus/">
WSGIProcessGroup menus
WSGIApplicationGroup menus
Require all granted
</Directory>
它工作正常,但它在 localhost/front 而不仅仅是本地主机上提供第一个应用程序。
如果我将第一个 WSGIScriptAlias 更改为:
WSGIScriptAlias / /var/www/flask_ac/hookup.wsgi
它将在 localhost 正确地提供第一个应用程序,但在 localhost/menus 的第二个应用程序中断,并且 returns 未找到。
我发现 有类似的问题,但它没有直接解决这个问题,我似乎无法弄明白。
更改顺序,使子 URL 的申请排在第一位。
WSGIScriptAlias /menus /var/www/flask_ac/projects/menus/hookup.wsgi
...
WSGIScriptAlias / /var/www/flask_ac/hookup.wsgi
文档中提到在以下位置订购:
我正在尝试直接在本地主机上提供一个烧瓶应用程序,并在 localhost/menus 上提供另一个。
当我的apache配置是这样的:
<VirtualHost *:80>
ServerName localhost
# logs configuration -------------------------------------------------
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
# front page ---------------------------------------------------------
WSGIDaemonProcess flask_ac user=#1000 group=#1000 threads=5
WSGIScriptAlias /front /var/www/flask_ac/hookup.wsgi
<Directory /var/www/flask_ac>
WSGIProcessGroup flask_ac
WSGIApplicationGroup flask_ac
Require all granted
</Directory>
# start menus --------------------------------------------------------
WSGIDaemonProcess menus user=#1000 group=#1000 threads=5
WSGIScriptAlias /menus /var/www/flask_ac/projects/menus/hookup.wsgi
<Directory "/var/www/flask_ac/projects/menus/">
WSGIProcessGroup menus
WSGIApplicationGroup menus
Require all granted
</Directory>
它工作正常,但它在 localhost/front 而不仅仅是本地主机上提供第一个应用程序。
如果我将第一个 WSGIScriptAlias 更改为:
WSGIScriptAlias / /var/www/flask_ac/hookup.wsgi
它将在 localhost 正确地提供第一个应用程序,但在 localhost/menus 的第二个应用程序中断,并且 returns 未找到。
我发现
更改顺序,使子 URL 的申请排在第一位。
WSGIScriptAlias /menus /var/www/flask_ac/projects/menus/hookup.wsgi
...
WSGIScriptAlias / /var/www/flask_ac/hookup.wsgi
文档中提到在以下位置订购: