Nginx 反向代理后端节点服务器记录用户IP -- 案例实战
前言
本环境是基于 Centos 7.8 系统构建Nginx学习环境
具体构建,请参考 Nginx-1.18.0 环境部署
本次环境实验环境来自,Web集群案例实战 – Nginx 负载均衡 – 案例实战
具体请参考:Nginx 负载均衡 – 案例实战
上次我们配置了Nginx 反向代理、负载均衡案例,但是我们测试环节发现:我们配置的nginx web集群 后端存在多个虚拟主机节点提供web服务,可是后端Nginx web 服务仅仅向Client 响应第一个虚拟主机对应的web页面,这次,我们将解决这一问题。
node03 追踪日志的同时,客户端访问
客户端访问
追踪日志情况
发现客户端记录的居然是反向代理服务器的iIP地址
解决办法
修改node01 nginx配置文件
[root@node01 ~]# vim /etc/nginx/conf.d/vhost.conf
upstream www.server_pools {
server 192.168.5.12 weight=1;
server 192.168.5.13 weight=1;
}
server {
listen 80;
server_name www.yunjisuan.com;
location / {
proxy_pass http://www.server_pools;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $host;
}
}
server {
listen 80;
server_name bbs.yunjisuan.com;
location / {
proxy_pass http://www.server_pools;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $host;
}
}
[root@node01 ~]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
[root@node01 ~]# systemctl restart nginx
node04 再次测试
此时后端节点服务器,记录到了客户端访问的真实 IP !!!