我以某种方式因一个微小的更改而破坏了正在运行的 SSL LB,现在无法让它再次运行。
VM 实例 - - 显示不健康并通过外部 IP 给出 502 错误(但采用正确的 SSL 证书) - 分别包含 443 和 80 端口的防火墙规则
LB - - 前端使用 SSL 证书(由 Let's Encrypt 颁发)设置为 HTTPS 流量 - 后端通过 HTTPS 协议(和区域)指向上述 VM 实例的 443 端口
防火墙 - - 除了上述虚拟机实例之外,还存在针对 LB 的防火墙规则,其 IP 范围为:130.211.0.0/22、35.191.0.0/16,通过 443 端口
我该怎么办?我也重新启动了 VM 实例。
答案1
您能告诉我您对 SSL LB 所做的最后更改吗?
现在看来你已经配置了正确的防火墙规则来允许来自健康检查端口 443 上的 IP 范围为 130.211.0.0/22、35.191.0.0/16。因此,您必须检查健康检查配置,以查看 GCP 发送健康检查请求时使用的 URL 路径是否在端口 443 上。
GCP 健康检查将预期 HTTP(s) 200 响应,请确保您的后端服务器正在监听该端口并且 URL 与健康检查的 URL 路径匹配。
您可以使用以下命令检查您的实例是否正在监听端口 443(仅适用于 Linux)。
nmap -Pn LB的外部IP地址
nmap -Pn VM的外部IP地址
netstat -an | grep -i 听
netstat -an |使用以下命令运行此命令: grep -i 听
也许您的虚拟机实例正在监听并尝试在与健康检查配置中指定的不同的端口/路径上响应健康检查请求。