nginx如何获取请求客户端的ip地址

PMa*_*Mat 8 nginx node.js nginx-reverse-proxy

我有 ngnix 代理到 nodejs 服务器。我试图在我的 nodejs 中读取请求客户端 IP 地址/主机名,但它总是

::ffff:127.0.0.1
Run Code Online (Sandbox Code Playgroud)

但是在我的nginx访问日志中,可以看到打印的客户端ip地址,不知道为什么我的nodejs服务器无法获取它。

x.x.x.x - - [24/Aug/2017:14:28:01 -0700] "GET ...."
Run Code Online (Sandbox Code Playgroud)

Akb*_*hry 13

将以下内容添加到代理 NodeJS 的 nginx 配置节中:

proxy_set_header X-Real-IP $remote_addr;

现在您可以在 NodeJS 中读取标头“X-Real-IP”


小智 5

用作proxy_set_header X-Real-IP $remote_addr;代理请求的位置块中的设置。

在服务器中使用属性“HTTP_X_REAL_IP”

以Python为例: request.environ.get('HTTP_X_REAL_IP') (or) request.environ.get('HTTP_X_REAL_IP',request.environ.get('REMOTE_ADDR'))