【问题标题】:Serve one flask app at root and another at a different path with apache2 and mod_wsgi使用 apache2 和 mod_wsgi 在 root 和不同路径上提供一个烧瓶应用程序
【发布时间】:2018-01-21 00:42:16
【问题描述】:

我正在尝试直接在 localhost 上提供一个烧瓶应用程序,并在 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 上为第一个应用程序提供服务,而不仅仅是 localhost。

如果我将我的第一个 WSGIScriptAlias 更改为:

WSGIScriptAlias / /var/www/flask_ac/hookup.wsgi

它将在 localhost 上正确地为第一个应用程序提供服务,但 localhost/menus 上的第二个应用程序中断,并返回未找到。

我发现this answer 有一个类似的问题,但它没有直接解决这个问题,我似乎无法弄清楚。

【问题讨论】:

    标签: python apache flask mod-wsgi debian-stretch


    【解决方案1】:

    更改顺序,使子 URL 的应用程序在前。

    WSGIScriptAlias /menus /var/www/flask_ac/projects/menus/hookup.wsgi
    
    ...
    
    WSGIScriptAlias / /var/www/flask_ac/hookup.wsgi
    

    提及订购的文档:

    【讨论】:

    • 完美运行。感谢您提供解决方案,并提供文档链接以供将来参考。
    猜你喜欢
    • 2018-10-06
    • 1970-01-01
    • 2012-08-03
    • 1970-01-01
    • 1970-01-01
    • 2018-07-08
    • 2015-09-18
    • 1970-01-01
    • 2012-07-28
    相关资源
    最近更新 更多