通过反向代理时获取客户端IP

在我的VPS我主持几个网站。 每个人都住在自己的Linux Container中。 例如

站点#1 – > 10.0.3.111

网站#2 – > 10.0.3.112

网站#3 – > 10.0.3.113

要知道在哪里redirect每个请求,我在10.0.3.101另一个Linux容器中也有一个反向代理nginx

我遇到的问题是,在运行Laravel的其中一个网站中,我尝试获取客户端的IP,如下所示:

 <p>IP Address: {{ Request::getClientIp() }}</p> 

问题是,我一直在10.0.3.101 ,而不是客户端的IP。

我猜Laravel正在获取请求出现的最后一个主机的IP,而不是最初发起请求的主机的IP。

有没有办法,我可以得到这个知识产权,而不改变这种结构?

configuration

这是我的nginx主机文件:

 server { listen 80; server_name example.com www.example.com; location / { proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $remote_addr; proxy_pass http://10.0.3.115; } } 

您需要设置受信任的代理 。 在这种情况下, getClientIp()将使用X-Forwarder-For头来获取客户端IP地址。