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

前端之家收集整理的这篇文章主要介绍了REMOTE_ADDR没有使用nginx&龙卷风发送给Django前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

所以我有一个简单的设置与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

原文链接:https://www.f2er.com/nginx/434644.html

猜你在找的Nginx相关文章