【发布时间】:2016-01-12 09:53:16
【问题描述】:
我有一个在端口 5000 上运行的 Flask 应用程序。我的服务器管理员已将 nginx 配置为将其转发到端口 5001(抱歉,如果我的术语有误:Flask 应用程序在端口 5000 上运行,但该应用程序可在以下位置公开访问http://the_url:5001)。
在浏览器中直接访问的所有路由都有效,但任何使用 url_for() 的重定向似乎都会导致 URL 丢失端口 — 即 redirect(url_for('index')) 重定向到 http://the_url/ 而不是 http://the_url:5001/(其中 @987654329 @触发函数index())。
如何确保 Flask 在重定向时添加正确的端口?如果我将默认端口更改为 5001,nginx 配置将无法正常工作,因为它希望应用程序在端口 5000 上运行?
【问题讨论】:
-
阅读评论以获取stackoverflow.com/questions/12162634/… 中的答案。您应该从配置中删除“http”部分。
-
我已经看到了以前的答案,但是设置
app.config["SERVER_NAME"]变量会停止网站运行......除非我做错了? (我只是设置为:the_url:5001) -
@user2672537,你需要设置
SERVER_NAME=localhost:5001 -
这个网址对我有帮助(它很旧,但仍然有效):flask.palletsprojects.com/en/1.0.x/deploying/wsgi-standalone/…