我在 Azure 上的负载均衡器后面有 2 个虚拟机。我使用分配给负载均衡器的域在其中一台虚拟机上通过 Let's Encrypt 创建了新的 SSL 证书。当我通过 IP 直接连接到该虚拟机时,我看到证书已加载,但现在我无法从负载均衡器流量路由到虚拟机,网站无法加载。
在我添加证书和 nginx 中的规则以将 80 重定向到 HTTPS 之前,一切都运行良好。我在负载均衡器中添加了一条新规则,将数据从 443 路由到 backpool 443,并为 443 添加了新的健康探测,但这没有帮助。
我读到可以使用 Azure 应用程序网关直接在负载均衡器上加载证书,但在这种情况下,我需要重新创建我的虚拟机以将它们放在同一个虚拟网络中,而我想避免这种情况。
是否可以使用传统负载均衡器路由 HTTPS 流量。请注意,我同意将每个虚拟机设置为使用相同的证书,以便在每个虚拟机中获取 HTTPS 流量。
答案1
Azure 的负载均衡器是第 4 层均衡器,可以平衡 TCP 和 UDP 流量。因此,它不支持 SSL 卸载。
应用程序网关可以在第 7 层实现平衡,因此可以进行 SSL 卸载。这意味着您只需将证书上传到应用程序网关。
如果您想继续使用 LB,则所有虚拟机都需要证书。您应该能够在端口 443 上实现平衡,而不会出现问题。您需要一个平衡规则和一个健康探测,并且您需要在网络安全组中允许从 Internet 到 443 的流量。
答案2
负载均衡器比较
AWS
Application Load Balancer - Layer 7 - HTTP, HTTPS
Network Load Balancer - layer 4 - TCP, UDP, TLS
Classic - Layer 4/7 - HTTP/HTTPS(layer 7), TCP, SSL/TLS(layer 4)
Azure
Load Balancer - Layer 4 - TCP and UDP
Application Gateway - Layer 7 - HTTP, HTTPS(support SSL)