原创

Nginx反向代理后获取不到用户的真实ip

我们经常用Nginx做代理,分发到具体服务的端口上面,但是具体服务在用request.getRemoteAddr()获取用户的ip地址的时候,获取的不是用户的ip,变成了Nginx服务器所在的ip了。

Nginx作为一个代理的存在,本身就是相当于客户端 和 具体服务的一个中介,服务端通过Nginx转发的请求获取用户的ip变成Nginx的并不奇怪,而我们现在只要将Nginx获取到的客户端信息再次转发出来就可以了。

location / {
host 修改为真实的域名和端口
proxy_set_header Host $http_host;
客户端真实ip
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
客户端真实协议(http/https)
proxy_set_header X-Forwarded-Proto $scheme;
}

正文到此结束