【问题标题】:Django get IP only returns 127.0.0.1Django 获取 IP 只返回 127.0.0.1
【发布时间】:2011-05-29 13:55:47
【问题描述】:

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

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

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

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

我认为这可能与 gunicorn 有关,但我想先查看这里,看看你们是否有任何见解。

【问题讨论】:

  • 你是如何将 nginx 连接到 gunicorn 的?

标签: python django nginx


【解决方案1】:

get_ip() 是如何工作的?

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

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

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

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2011-01-23
  • 1970-01-01
  • 2012-11-11
  • 1970-01-01
  • 2014-09-02
  • 2013-10-20
  • 2018-07-08
相关资源
最近更新 更多