我在同一可用性集内的 Azure 上运行以下两个 VM。
HOST NAME
First
PUBLIC VIRTUAL IP (VIP) ADDRESS
104.xx.xx.26
HOST NAME
Second
PUBLIC VIRTUAL IP (VIP) ADDRESS
104.xx.xx.26
第一个 nginx 在端口 80 上运行,第二个 nginx 在端口 80 上没有运行任何服务
现在的问题是:
我已将 @ 主机名映射到上述公共 IP(104.xx.xx.26)。Azure 如何决定将请求路由到哪个 VM?Azure 是否会将请求路由到端口 80 上未运行任何服务的第二台 VM?
答案1
Azure 负载均衡器每分钟使用探测器运行几次健康检查,以确保端点正常。如果由于某种原因,负载均衡中的某个虚拟机未响应探测器,它只会将传入请求传输到健康的虚拟机。您不需要手动从 LB 中删除该虚拟机,尽管这被认为是一种好的做法,因为探测器可能会得到误报(即服务很慢,探测器收到状态正常)。
Azure 负载均衡器负责将传入流量路由到角色实例。负载均衡器通过定期探测每个实例来确定哪些实例可以接收流量,以确定该实例的运行状况。
https://msdn.microsoft.com/en-us/library/azure/jj151530.aspx
负载均衡器探测使用协议、端口和路径(如果协议 = http)来确定虚拟机的健康状况。
负载平衡逻辑是随机的。它使用虚拟机资源的哈希值来决定将新传入请求发送到何处。最后,如果所有虚拟机都相同且健康,则工作负载将基本均匀分布。