Django get IP只返回127.0.0.1

2024-03-29 15:14:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我和gunicorn,nginx和django建立了一个网络服务器。

我正在远程访问它,使用这个:

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

我只是得到一个127.0.0.1的ip地址,就像我说的,我正在远程访问它,因此它不应该给出一个本地地址。

我想这可能和古尼科恩有关,但我想先看看你们有什么见解。


Tags: djangoip网络服务器get远程addressrequest
1条回答
网友
1楼 · 发布于 2024-03-29 15:14:22

get_ip()如何工作?

如果nginx是反向代理,gunicorn是应用服务器,那么它总是在本地计算机上接收nginx的请求。

nginx发送给app服务器的真正ip在我的例子中是通过nginx conf行proxy_set_header X-Real-IP $remote_addr;

因此,您可能需要设置它,并在django应用程序中通过使用新的IP头或设置request.META['REMOTE_ADDR']=request.META['HTTP_X_REAL_IP']来为不同的头设置帐户

相关问题 更多 >