如何配置Nginx Plus主动健康检查使用HTTP而非HTTPS?
解决Nginx Plus健康检查使用HTTP而非HTTPS的配置方案
问题核心是当前健康检查默认沿用了proxy_pass的HTTPS协议,但Traefik暴露的9000健康端点仅支持HTTP,导致访问返回404。只需在health_check指令中明确指定使用HTTP协议即可解决。
修改后的完整配置
upstream k8s { zone k8s 64k; server server1:443; } match probe { status 200; body ~ "OK"; } # Server config server { listen *.443 ssl; # server options placeholder location / { proxy_pass https://k8s; # headers placeholder # 关键修改:添加protocol=http指定健康检查用HTTP协议 health_check port=9000 uri=/ping match=probe protocol=http; } }
关键修改说明
- 在
health_check指令末尾添加protocol=http,强制Nginx Plus使用HTTP协议访问Traefik的9000健康端点,而非继承proxy_pass的HTTPS协议 - 上游服务器的443端口仍用于业务流量的HTTPS转发,健康检查独立使用9000端口的HTTP服务,两者互不影响
内容的提问来源于stack exchange,提问作者Benjo
相关产品推荐
相关产品推荐

