我为ELB配置了TCP侦听器,该侦听器将流量发送到nginx,后者随后使用proxy_pass将所有流量发送到实际的应用程序服务器。
如果我没有配置运行状况检查路径,那么负载平衡器仅检查实例是否可以成功建立TCP连接。这将导致负载平衡器开始将流量定向到实际应用服务器尚未准备就绪的实例。为了确保在发送流量之前应用服务器已准备就绪,他们建议设置自定义路径,因此我设置了/ health_check,它基本上返回200
我从浏览器进行了测试,它确实可以渲染200,但是,当运行状况检查器调用它时,我在nginx上收到以下错误:
2019/07/26 18:54:10 [error] 25592#0: *122 broken header: "GET /health_check HTTP/1.1
host: 172.31.23.155
User-Agent: ELB-HealthChecker/1.0
Accept: */*
Connection: keep-alive
" while reading PROXY protocol, client: 172.31.3.207, server: 0.0.0.0:80
我在这里读过一篇文章:https://sgoel.org/posts/elb-proxy-protocol-health-check/
说“将运行状况检查配置为通过HTTP直接访问您的应用程序服务器也可以”,但是,我不知道该如何开始