【发布时间】:2014-04-14 06:07:59
【问题描述】:
我的烧瓶应用程序中的 redirect(url_for) 函数有问题。
任何 redirect(url_for("index")) 行都会将应用程序从 domain.com/app 重定向到 ip-addr/app,其中 ip-addr 是我自己的客户端机器 ip,而不是服务器的。
这让我很困惑,我不知道问题到底出在哪里,因为它只发生在服务器上,而不是任何本地测试。
详情:
我正在使用http://flask.pocoo.org/snippets/35/ 此处的反向代理设置。 我的 nginx 配置是这样设置的
location /app {
proxy_set_header X-Script-Name /app;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-Host $proxy_add_x_forwarded_for;
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Scheme $scheme;
proxy_connect_timeout 60;
proxy_read_timeout 60;
proxy_pass http://localhost:8000/;
}
我有 gunicorn 运行我的烧瓶应用程序作为新贵任务。 有什么提示吗?
编辑:
所以我挖了一下,发现这个 git 报告有类似的问题,https://github.com/omab/django-social-auth/issues/157。
Nginx - Gunicorn 通过 localhost (127.0.0.1:1234) 为 Nginx 服务。不幸的是,当我向社交平台进行身份验证时,social-auth 将它们发送到的重定向 URL 是 127.0.0.1:1234/twitter/complete,这显然无法被客户端的浏览器解析。
我的 Flask 应用似乎没有收到更新其重定向路由的备忘录。
【问题讨论】:
-
在编辑块中添加了更多细节。
标签: python nginx flask reverse-proxy gunicorn