Nginx 上游健康检查 - 自定义标头

Nginx 上游健康检查 - 自定义标头

有没有办法设置 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;
    }

相关内容