加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 运营中心 > Nginx > 正文

REMOTE_ADDR没有使用nginx&龙卷风发送给Django

发布时间:2020-12-13 21:28:56 所属栏目:Nginx 来源:网络整理
导读:所以我有一个简单的设置与nginx静态媒体和负载平衡和龙卷风作为web服务器django(4服务器运行).我的问题是remote_addr没有被传递给django,所以我得到一个KeyError: article.ip = request.META [REMOTE_ADDR] 由于nginx.conf,远程地址通过X-Real-IP(HTTP_X_RE

所以我有一个简单的设置与nginx静态媒体和负载平衡和龙卷风作为web服务器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密钥中,我不能仅仅做proxy_set_header remote_addr $remote_addr.如果没有找到远程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
>龙卷风2.2.1

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读