您的位置:首页 > 运维架构 > Nginx

在nginx反代后端nginx真实服务器获取客户端IP

2017-01-18 14:30 661 查看
实验:测试前端使用nginx做代理,在后端服务器上获取客户端真实IP

真实服务器:192.168.10.11
192.168.10.14
代理服务器:192.168.10.12
客 户 端:192.168.10.13
192.168.10.2

1.在nginx代理服务器上设置

upstream web {
server 192.168.10.11;
server 192.168.10.14;
}

server {
listen 80;
server_name localhost;
location / {
proxy_pass http://web; proxy_set_header host $host;
proxy_set_header X-forwarded-for $proxy_add_x_forwarded_for;
proxy_set_header X-real-ip $remote_addr;
}

2.在后端服务器设置
log_format test1 '$remote_addr - $http_x_forwarded_for';
access_log logs/access.log test1;

3.使用客户端访问代理服务器

4.查看后端服务器访问日志
192.168.10.12 - 192.168.10.13
192.168.10.12 - 192.168.10.13
192.168.10.12 - 192.168.10.2
192.168.10.12 - 192.168.10.2
可以看出,真实服务器上的$remote_addr是代理的IP,$http_x_forwarded_for就是客户端的真实IP了.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息