下面是我的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>
答案 0 :(得分:0)
而不是ProxyPass
,请尝试:
RewriteRule ^/$ http://127.0.0.1:5000/ [P]
ProxyPassReverse / http://127.0.0.1:5000/
答案 1 :(得分:0)
我知道这很陈旧,但可能会对某人有所帮助。烧瓶讨厌反向代理。您需要向应用程序添加flask-reverse-proxy-fix。