nginx配置upstream负载均衡后请求400,配置proxy_set_header Host $host
成功.
请问这是什么原理? proxy_set_header Host $host
有什么作用?
upstream
配置:
路由配置:
起初没有配置 proxy_set_header Host $host
等参数, 请求总是报 400(bad request).
而不配置负载均衡时, 仅配置一个 server 则可以正常代理:
nginx配置upstream负载均衡后请求400,配置proxy_set_header Host $host
成功.
请问这是什么原理? proxy_set_header Host $host
有什么作用?
upstream
配置:
路由配置:
起初没有配置 proxy_set_header Host $host
等参数, 请求总是报 400(bad request).
而不配置负载均衡时, 仅配置一个 server 则可以正常代理:
代理的后端服务器可以通过 Host 头得知用户访问的真正的域名, 如不设置, 则得到是代理服务(nginx)的 ip, 这样对于动态拼接的 url,后端服务器能在页面里返回正确的 url.
8 回答3.1k 阅读
2 回答1.6k 阅读✓ 已解决
1 回答1.3k 阅读✓ 已解决
4 回答1.6k 阅读
1 回答862 阅读✓ 已解决
2 回答1.2k 阅读
1 回答989 阅读
proxy_set_header Host $host
这一行的作用是把原http请求的Header中的Host字段也放到转发的请求里。如果不加这一行的话,nginx转发的请求header里就不会有Host字段,而服务器是靠这个Host值来区分你请求的是哪个域名的资源的。