nginx反向代理后,获取hostname不正确的问题

kevin.Zhu 发布于:2018-9-12 9:15 分类:文摘  有 29 人浏览,获得评论 0 条  

http://alex-yang-xiansoftware-com.iteye.com/blog/2404387


在nginx上配置了反向代理后,在被代理主机上查看request的serverName 得到的被代理主机的hostname,而不是用户原始请求的hostname。解决这个问题,需要进行如下配置(假设反向代理的路径为/,真实的访问地址为http://localhost:8080):

Xml代码  收藏代码
  1. location / {  
  2.             proxy_pass   http://localhost:8080;  
  3.             proxy_set_header HOST $host;   
  4.             proxy_set_header X-Real-IP $remote_addr;   
  5.             proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;   
  6.         }  

 

如果没有proxy_set_header这三个配置,在被代理主机上获取的hostname是localhost:8080,不是用户原始请求的hostname。