在我的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地址。