我有一个node+express网站在我的ubuntu服务器上运行在端口10000上,nginx在端口80上使用proxy_pass到localhost:10000。我的问题是,当我在 Express 中请求主机时,它返回 localhost 而不是我的域名。我使用 nginx 代理,这样我就可以管理计算机上指向不同应用程序的多个域。
有没有办法在我的node+express服务器上保留原始主机名,同时仍然在nginx中使用proxy_pass?
默认情况下,nginx
将上游请求中的 Host 标头设置为出现在proxy_pass
陈述。在这种情况下localhost
.
您需要使用显式设置主机标头proxy_set_header
指示。
例如,我总是设置这个组:
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Accept-Encoding "";
proxy_set_header Proxy "";
See 这个文件了解更多。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)