带有flask,wsgi和反向代理的Apache配置

时间:2017-08-09 04:15:00

标签: flask apache2 mod-wsgi

下面是我的Apache配置。我想要做的是为网站的主要部分设置反向代理。因此,当用户访问mysite.xyz时,他们会获得在端口5000上运行的内容(这是有效的)。我还想在mysite.xyz/page1上运行一个烧瓶应用程序。这将返回404找不到的页面。当我切换它们并将应用程序放在/并将主站点放在第1页时,该应用程序可以运行,但是第1页无法找到任何正确的js资产,所以我想避免这种情况。但该应用程序确实可以工作并在Apache上运行,但反向代理必须覆盖烧瓶应用程序的WSGI部署或什么?

<VirtualHost *:80>

    ServerName mysite.xyz
    ServerAdmin email@gmail.com

    ProxyPass / http://127.0.0.1:5000/
    ProxyPassReverse / http://127.0.0.1:5000/

    RewriteCond %{HTTP_HOST} !^mysite\.xyz$ [NC]
    RewriteRule ^/$ http://%{HTTP_HOST}/ [L,R=301]

    WSGIScriptAlias /page1 /var/www/FlaskApp/FlaskApp.wsgi
    <Directory /var/www/FlaskApp/>
        Order allow,deny
        Allow from all
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined

</VirtualHost>

2 个答案:

答案 0 :(得分:0)

而不是ProxyPass,请尝试:

RewriteRule ^/$ http://127.0.0.1:5000/ [P]
ProxyPassReverse / http://127.0.0.1:5000/

答案 1 :(得分:0)

我知道这很陈旧,但可能会对某人有所帮助。烧瓶讨厌反向代理。您需要向应用程序添加flask-reverse-proxy-fix。

https://pypi.org/project/flask-reverse-proxy-fix/