【问题标题】:Flask url_for('index', _external=True) creates url with double ip?Flask url_for('index', _external=True) 创建带有双 ip 的 url?
【发布时间】:2016-05-09 23:29:47
【问题描述】:

我有一个Flask 网站,该网站在我刚刚使用 IP 地址调用的测试机器上运行良好。我现在部署了一些新代码,url_for('index', _external=True) 突然给出了一个地址,其中两次列出了(正确的)IP 地址,中间用逗号分隔:

http://52.29.15.xxx,52.29.15.xxx/

我的config.py 中没有定义SERVER_NAME(直到今天还可以正常工作),我在gunicorn 后面的nginx 服务器上运行。

我尝试将 SERVER_NAME = '52.29.15.xx' 添加到我的 config.py 中,但随后我尝试的每个 url 都会收到 404(因此该网站根本无法运行)。

我猜问题出在 nginx 上,它通过了一个奇怪的位置或什么?

有人知道我该如何解决这个问题吗?欢迎所有提示!

【问题讨论】:

    标签: python url nginx flask gunicorn


    【解决方案1】:

    好的,经过一番摆弄后,我发现我的 nginx 配置中有一个错误。实际上,我的配置中的两个地方有以下两行(这就是我没有注意到它的原因):

    proxy_set_header Host $http_host;
    proxy_set_header Host $host;
    

    导致 ip 地址在 Flask 请求上下文中出现两次。

    我现在删除了第一行,一切都再次完美运行.. :-)

    【讨论】:

      猜你喜欢
      • 2016-10-04
      • 2017-12-02
      • 2011-11-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-21
      • 2011-03-30
      • 1970-01-01
      相关资源
      最近更新 更多