Nginx的代理服务器传递真正的IP不起作用

我在Docker容器中运行一个nginx反向代理服务器。 后端是在主机上运行的apache服务器,它正在侦听10082端口。 Laravel处理请求。 我用

$request->getClientIp()

得到真正的IP。 然而,直接通过http://myip:10082访问服务器的结果没有代理与通过反向代理访问它的结果冲突。

laravel中的testing代码:

 echo $request->ip().'<br>'; echo $request->headers->get('X-Real-IP').'<br>'; echo $request->getClientIp().'<br>'; 

代理的结果:

 192.168.80.2 218.205.17.167 192.168.80.2 

没有代理的结果(XX.XXX.236.29是我的真实IP):

 XX.XXX.236.29 XX.XXX.236.29 

nginx的configuration:

 server { listen 80; server_name myserver.com; access_log logs/myserver.access.log main; location / { proxy_pass http://myip:10082; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } } 

我很困惑。 有人可以帮我解决这个问题吗? 谢谢!

由于您已经在您的nginx代理中设置了X-Real-IP标头,这是真正的IP。