【发布时间】:2017-02-06 08:12:01
【问题描述】:
我在 docker 容器中运行一个 nginx 反向代理服务器。而后端是运行在主机上的apache服务器,监听10082端口。 Laravel 处理请求。我使用
$request->getClientIp()
获取真实IP。但是,http://myip:10082不使用代理直接访问服务器的结果与反向代理访问的结果冲突。
laravel中的测试代码:
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的配置:
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;
}
}
我很困惑。有人可以帮我解决它。谢谢!
【问题讨论】: