nginx配置proxy_set_header Host $host的作用?

发布于 2022-09-11 18:38:13 字数 608 浏览 14 评论 0

nginx配置upstream负载均衡后请求400,配置proxy_set_header Host $host成功.
请问这是什么原理? proxy_set_header Host $host有什么作用?

upstream配置:

clipboard.png

路由配置:
起初没有配置 proxy_set_header Host $host 等参数, 请求总是报 400(bad request).

clipboard.png

而不配置负载均衡时, 仅配置一个 server 则可以正常代理:

clipboard.png

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

旧人哭 2022-09-18 18:38:13

proxy_set_header Host $host这一行的作用是把原http请求的Header中的Host字段也放到转发的请求里。
如果不加这一行的话,nginx转发的请求header里就不会有Host字段,而服务器是靠这个Host值来区分你请求的是哪个域名的资源的。

动次打次papapa 2022-09-18 18:38:13

代理的后端服务器可以通过 Host 头得知用户访问的真正的域名, 如不设置, 则得到是代理服务(nginx)的 ip, 这样对于动态拼接的 url,后端服务器能在页面里返回正确的 url.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文