下面是nginx.conf中的主要配置信息:
upstream backend{
ip_bash;
server 192.168.0.11:8085;
server 102.168.0.121:8085;
}
server{
listen 80;
server_name ngixn.example.com;
location ^~/test/ {
proxy_pass http://backend;
#proxy_set_header Host $host;
#proxy_set_header X-Real-IP $remote_addr;
#proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
当我访问http://nginx.example.com/test的时候出现了, 此页面重定向不正确(检测到该服务器正在将此地址的请求循环重定向),错误信息
解决方法,只要将上述3行注释去掉就可以正确的访问了。
其实,只要将第一个注释去掉就可以了。
原因为:
Host的含义是表明请求的主机名,因为nginx作为反向代理使用,而如果后端真是的服务器设置有类似防盗链或者根据http请求头中的host字段来进行路由或判断功能的话,如果反向代理层的nginx不重写请求头中的host字段,将会导致请求失败【默认反向代理服务器会向后端真实服务器发送请求,并且请求头中的host字段应为proxy_pass指令设置的服务器】