现象:nginx在使用非80端口作反向代理时,浏览器访问发现返回302错误nginx
缘由:proxy.conf文件中定义的proxy_set_header Host $host;后端
意思是nginx接收到浏览器请求后修改请求头中的host信息,而后再把请求转发给后端真实服务节点,服务节点响应后把返回信息传送给nginx,而因为nginx是使用的非80端口作代理,后端服务节点却依然觉得nginx是80端口,因此响应信息没有正确的返回给nginx的非80端口浏览器
解决:修改成proxy_set_header Host $host:$server_port;便可,这样就把请求头中的host修改成nginx的非80端口了,后端服务节点就知道响应应该返回的正确nginx代理端口代理