【发布时间】:2014-11-15 17:15:50
【问题描述】:
我正在将 Flask 应用程序从 apache2 和 mod_wsgi 环境移动到 Nginx,并且在让 url 正常工作时遇到问题。
我希望我的应用的根页面出现在例如@987654321@
我的 @app.route 装饰器是例如@app.route('/') 用于我的应用程序的根目录 (@987654322@),@app.route('/subpage') 用于@987654323@ 等子页面。
在 apache 下,这一切都“正常工作”,我对 url_for() 的调用产生了完成工作的 URL。
现在我来自 url_for() 的 URL 的格式为:href="/subpage",这会将我发送到域根目录 @987654324@,而不是我想要的:href="./subpage",这会将我带到 @987654325@。
对于它的价值,我的 Nginx 配置中的相关部分是:
location /myapp/ {
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $server_name;
proxy_pass http://127.0.0.1:8001/;
}
我正在使用 gunicorn 为应用程序提供服务。
在目前的情况下,访问@987654326@ 会将我带到我的 Flask 应用程序的根页面,但所有其他 URL 会将我带回到域级别:@987654327@。
我尝试将 APPLICATION_ROOT 设置为“/myapp”,但似乎没有效果。我在做什么(可怕的)错误?
【问题讨论】:
标签: python nginx flask gunicorn wsgi