【问题标题】:Apache config with flask, wsgi, and reverse proxy带有烧瓶、wsg​​i 和反向代理的 Apache 配置
【发布时间】:2018-01-16 19:22:22
【问题描述】:

下面是我的 Apache 配置。我正在尝试为网站的主要部分设置反向代理。因此,当用户访问 mysite.xyz 时,他们会看到在端口 5000 上运行的内容(这是有效的)。我还想在 mysite.xyz/page1 上运行一个烧瓶应用程序,这将返回一个 404 not found 页面。当我切换它们并将应用程序放在 / 并将主站点放在 page1 时,应用程序可以工作,但 page1 找不到任何正确的 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>

【问题讨论】:

    标签: flask apache2 mod-wsgi


    【解决方案1】:

    试试ProxyPass,而不是:

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

    【讨论】:

      【解决方案2】:

      我知道这是陈旧的,但它可能对某人有所帮助。 Flask 讨厌反向代理。您需要将 flask-reverse-proxy-fix 添加到您的应用中。

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-04-26
        • 1970-01-01
        • 2017-04-06
        • 2018-08-01
        • 1970-01-01
        • 2017-10-24
        • 2018-02-14
        • 1970-01-01
        相关资源
        最近更新 更多