Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services 为什么我看到ELB健康检查加倍?_Amazon Web Services_Amazon Elb - Fatal编程技术网

Amazon web services 为什么我看到ELB健康检查加倍?

Amazon web services 为什么我看到ELB健康检查加倍?,amazon-web-services,amazon-elb,Amazon Web Services,Amazon Elb,我有一个ELB,配置如下: 可用区域:ap-东南-1a和ap-东南-1b 跨区域负载平衡:已启用 连接设置:空闲超时:300秒 健康检查详情: Ping目标HTTPS:443/登录 超时15秒 间隔20秒 不健康阈值5 健康阈值3 侦听器详细信息: 端口443上的TCP,转发到实例端口443,nginx正在侦听并执行ssl终止 我经常在nginx日志中看到双重健康检查调用。这一切发生在同一时刻,至少是同一秒 为什么?在多个可用性区域中启动的ELB或具有大量流量的ELB,无论该可用性区域中

我有一个ELB,配置如下:

  • 可用区域:ap-东南-1a和ap-东南-1b
  • 跨区域负载平衡:已启用
  • 连接设置:空闲超时:300秒
健康检查详情:

  • Ping目标HTTPS:443/登录
  • 超时15秒
  • 间隔20秒
  • 不健康阈值5
  • 健康阈值3
侦听器详细信息:

端口443上的TCP,转发到实例端口443,nginx正在侦听并执行ssl终止

我经常在nginx日志中看到双重健康检查调用。这一切发生在同一时刻,至少是同一秒


为什么?

在多个可用性区域中启动的ELB或具有大量流量的ELB,无论该可用性区域中是否存在任何实例,在配置ELB的每个可用性区域中,实际上都至少有一个ELB节点处于活动状态

如果您检查传入健康检查请求的源IP地址,您应该会发现它们有所不同。特别是在启用跨区域负载平衡的情况下,您应该看到每个ELB节点的每个间隔都有一个运行状况检查,因为每个ELB节点都向每个实例发送运行状况检查

刚才我的日志中的示例:

Jul  1 19:22:25 localhost 172.17.0.251:4076 ELB-HealthChecker/1.0 "GET / HTTP/1.1" 
Jul  1 19:22:25 localhost 172.17.10.98:42667 ELB-HealthChecker/1.0 "GET / HTTP/1.1" 
请注意,
172.17.*.
在我的VPC中,这两个IP地址在我的两个“公共”子网上的范围内。。。但它们是什么?这些是ELB节点的内部专用IP地址

请注意,ELB“nodes”是一个我刚才可能编过也可能没有编过的术语,但它描述了虚拟机EC2无形地配置为充当您的弹性负载平衡器。(ELB显然部署在由ELB基础设施控制的EC2实例上,这些实例在AWS控制台中绝对不可见)

您不需要单独支付这些机器的费用,因此您通常不必关心这些机器的数量。它们会随着流量负载自动上下扩展——轶事观察表明,节点的实例类可能是动态的,节点的数量也是动态的。每个节点理论上最多可以支持64K到后端服务器的连接,不过在达到这样的数量之前,其他容量限制可能会出现

您可以根据ELB主机名使用
dig
实用程序很好地了解在任何给定时间ELB集群中有多少节点,如控制台中所示

$ dig xxxxxxxx-yyyyyyyy.us-west-2.elb.amazonaws.com

; <<>> DiG 9.8.1-P1 <<>> xxxxxxxx-yyyyyyyy.us-west-2.elb.amazonaws.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 38905
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 13, ADDITIONAL: 9

;; QUESTION SECTION:
;xxxxxxxx-yyyyyyyy.us-west-2.elb.amazonaws.com. IN A

;; ANSWER SECTION:
xxxxxxxx-yyyyyyyy.us-west-2.elb.amazonaws.com. 59 IN A 54.149.x.x
xxxxxxxx-yyyyyyyy.us-west-2.elb.amazonaws.com. 59 IN A 54.201.x.x
$dig xxxxxxxx-yyyyyyyy.us-west-2.elb.amazonaws.com
;  挖掘9.8.1-P1 xxxxx-yyyyyyy.us-west-2.elb.amazonaws.com
;; 全局选项:+cmd
;; 得到答案:
;; ->>标题