有没有办法设置 Nginx plusHost
在执行健康检查时也传递标头?
看起来 nginx 解析了服务器的 IP 地址,然后使用它来代替指定的主机名。问题是,如果没有提供主机名,后端就无法路由请求。
upstream backend {
server backend1.example.com:80 resolve fail_timeout=0 max_fails=0;
}
答案1
与 nginx的其他所有用途一样,proxy_pass
它默认与上游建立 HTTP/1.0 连接,并将 Host 标头设置为定义的名称upstream
或其 IP 地址。
您可以自己设置主机头或 HTTP/1.1(或两者)来覆盖这些。
location /health {
health_check;
proxy_pass http://backend;
proxy_http_version 1.1;
proxy_set_header Host $host;
}