nginx配置proxy_set_header Host $host的作用?
nginx配置upstream负载均衡后请求400,配置proxy_set_header Host $host
成功.
请问这是什么原理? proxy_set_header Host $host
有什么作用?
upstream
配置:
路由配置:
起初没有配置 proxy_set_header Host $host
等参数, 请求总是报 400(bad request).
而不配置负载均衡时, 仅配置一个 server 则可以正常代理:
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
proxy_set_header Host $host
这一行的作用是把原http请求的Header中的Host字段也放到转发的请求里。如果不加这一行的话,nginx转发的请求header里就不会有Host字段,而服务器是靠这个Host值来区分你请求的是哪个域名的资源的。
代理的后端服务器可以通过 Host 头得知用户访问的真正的域名, 如不设置, 则得到是代理服务(nginx)的 ip, 这样对于动态拼接的 url,后端服务器能在页面里返回正确的 url.