gpt4 book ai didi

django - REMOTE_ADDR 未使用 nginx 和 Tornado 发送到 Django

转载 作者:行者123 更新时间:2023-12-04 02:32:12 27 4
gpt4 key购买 nike

因此,我使用 nginx 进行了一个简单的设置,用于静态媒体和负载平衡,并将 Tornado 作为 django 的网络服务器(运行 4 个服务器)。我的问题是 remote_addr 没有传递给 django,所以我收到了一个 KeyError:
article.ip = request.META['REMOTE_ADDR']
由于 nginx.conf,远程地址作为 X-Real-IP (HTTP_X_REAL_IP) 发送:

    location / {
proxy_pass_header Server;
proxy_set_header Host $http_host;
proxy_redirect false;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Scheme $scheme;
proxy_pass http://frontends;
}

由于 HTTP 附加到 META key ,我不能只执行 proxy_set_header remote_addr $remote_addr。如果找不到远程地址键,我可以做的是读取 X-Real-IP,但我很好奇是否有更智能的解决方案。

谢谢!

最佳答案

试试这个:

location / {
proxy_pass http://frontends;
proxy_pass_header Server;
proxy_redirect off;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Scheme $scheme;
proxy_set_header REMOTE_ADDR $remote_addr;
}

只需添加 proxy_set_header REMOTE_ADDR它应该运行良好。

尝试过:
  • Django 1.5.4
  • Nginx 1.4.3
  • Tornado 2.2.1
  • 关于django - REMOTE_ADDR 未使用 nginx 和 Tornado 发送到 Django,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1627901/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com