测试nginx反向代理三个参数: proxy_set_header Host $host; #虚拟主机 proxy_set_header X-Real-IP $remote_addr; #获取客户端的真实IP proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; # Web服务器记录通
测试nginx反向代理三个参数:
proxy_set_header Host $host; #虚拟主机
proxy_set_header X-Real-IP $remote_addr; #获取客户端的真实IP
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; #Web服务器记录通过代理转发的客户端ip
Nginx proxy_params文件引入:
通常nginx代理参数都会如下写法,行数太多的话不便于管理,引入proxy_parms便于管理。
目录/etc/nginx创建proxy_params文件,写入代理参数include引用:
[root@node2 nginx]# pwd/etc/nginx
[root@node2 nginx]# cat proxy_params
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_redirect off;
proxy_read_timeout 600;
proxy_connect_timeout 600;
Nginx 虚拟主机参数:
proxy_set_header Host $host; #虚拟主机
参数意思:
Web服务器存在多个虚拟主机时,当用户访问www.mew.com域名时,代理服务器去找www.mew.com这个虚拟主机。访问test.mew.com域名时,就寻找test.mew.com虚拟主机。如果没有这个参数,就按照nginx location优先级原则匹配,或者/etc/nginx/conf.d目录下,那个域名靠前就先访问。
测试流程图如下:
Web服务器的配置:
Php测试页:
测试静态页:
代理服务器的配置:
Nginx proxy_set_header参数关闭测试:
注释:proxy_set_header Host $host;
关闭测试结果:
开启Nginx proxy_set_header参数开启测试:
开启:proxy_set_header Host $host;
Nginx 获取客户端真实IP:
proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
代理服务器配置参数:
[root@node1 nginx]# cat conf.d/test.conf
server {
listen 80;
server_name test.mew.com;
location / {
proxy_pass http://10.40.42.127:80;
#include proxy_params;
}
}
proxy代理服务器nginx log内容(开启/关闭):
tail -200f /var/log/nginx/access.log
Web服务器nginx log内容(开启/关闭):
tail -200f /var/log/nginx/access.log总结:开启proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;参数,文件log尾部看到客户端的真实ip,通常这个2个参数一块使用,否则就是"-"。