Nginx反向代理 简单架设
作者:admin 发布于:2012-5-30 11:17 Wednesday
location / { proxy_pass http://192.168.1.101:800; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } }
proxy_set_header Host $host :
首先说明 proxy_set_header 指令在向反向代理的后端Web服务器发起请求时添加指定的 Header头信息,
后端web服务器有多个基于域名的虚拟主机时,通过头信息Host,用于指定请求的域名,
这样后端web才能识别反向代理请求哪个虚拟主机处理。
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for :
在后端web中就算加上$http_x_Forwarded_for这条,也得不到用户的IP,
所以在nginx反向代理添加 Header头信息 X-Forwarded-For在配合后端服务器日志文件的$http_x_Forwarded_for
就可以获得用户的IP地址了。
PS:假设Nginx作为Web服务器,nginx或Squid作为反向代理后,就不能获取客户端的真实IP地址了,由于在客户端和Web增加了 中间层,web没有真实的IP,通过$remote_addr变量拿到是反向代理的IP,Web代理可以增加$http_x_Forwarded_for 信息,用于记录客户端IP和原来客户请求的服务器地址,在日志格式中加上即可。