使用 nginx 和 TCP 时的 AWS ELB 健康检查

使用 nginx 和 TCP 时的 AWS ELB 健康检查

我有一个 elasticbeanstalk 环境,它使用 nginx 作为 node.js 应用程序的前端服务器。

该环境使用弹性负载均衡器,配置为接受 TCP:80/SSL:443 上的连接并将两者转发到 TCP:8080 上的 nginx 实例。我使用 TCP/SSL+ProxyProtocol(而不是 HTTP/HTTPS)来支持 websockets。

使用 TCP 时,AWS ELB 不允许我使用 URL 从负载均衡器进行健康检查。我需要使用一个 URL,否则它只会检查 nginx 是否在 8080 上监听,而不会检查我的 node.js 应用程序是否正在运行。

我正在寻找让它发挥作用的想法。目标是获取我的 node.js 应用程序运行状况检查 URL,并让 AWS ELB 在运行状况检查 URL 状态不是 200 时将该实例标记为不健康。

我目前的想法是尝试利用 nginx 对健康检查的支持,这样它就可以与 nodejs 对抗,如果它检测到应用程序不健康,就停止监听 8080 上的连接,这样 ELB 就会将该实例标记为不健康。也许当 nginx 检测到健康/不健康的实例时运行命令就足够了。

这可能吗?还有其他想法吗?

答案1

负载均衡器健康检查配置独立于侦听器端点配置,因此您可以毫无问题地配置负载均衡器健康检查HTTP:8080/index.html

不确定我在想什么...

相关内容