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

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

location / {
            proxy_pass   http://localhost:8080;
			proxy_set_header HOST $host; 
			proxy_set_header X-Real-IP $remote_addr; 
			proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
        }

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

相关推荐