Django获取IP仅返回127.0.0.1

发布于 2021-01-29 15:07:47

我有一个用gunicorn和nginx和django设置的网络服务器。

我正在远程访问它:

def testIP(request):
    ip_address = utils.get_ip(request)

我只是一直获得127.0.0.1的IP地址,就像我说的那样,我正在远程访问它,因此它不应该提供本地地址。

我认为这可能与古尼康有关,但我想先在这里检查一下,看看你们是否有任何见识。

关注者
0
被浏览
93
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    get_ip()如何工作?

    如果nginx是反向代理,而gunicorn是应用服务器,则它总是从本地计算机上的nginx获取请求。

    在我的情况下,nginx发送到应用服务器的真实IP是HTTP_X_REAL_IP通过nginx conf行proxy_set_header X-Real-IP $remote_addr;

    因此,您可能需要设置该值,并在django应用程序帐户中使用新IP头或set
    request.META['REMOTE_ADDR']=来设置其他头request.META['HTTP_X_REAL_IP']



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看