ELB troubleshooting

1. 检查ELB配置时需要检查:
  1. timeouts:timeout值要比ELB idle timeout高,
  2. keep alive
  3. X-Forwarded-* headers
  4. 服务器
  5. 当使用web/application服务器作为ELB的代理时,确保该服务器服从ELB TTL
2. 504报错

当ELB向后端发送一个请求,然后后端要么1)关闭连接;2)重置,ELB都会返回504报错。可能的原因有:

  1. ELB pre-opened连接
3. 健康检查
  1. TCP健康检查:
    先和指定端口通过三次TCP握手建立TCP连接(需要在指定timeout之前完成)。若连接超时,或后端返回了一个RST,健康检查会失败。
    一个健康的TCP检查并不保证服务是正常的,因为一个应用可能可以建立连接,但不能serve任何请求。所以推荐使用HTTP健康检查,这个可以have a better insight of the service listening on the port

  2. HTTP健康检查:
    会发一个HTTP请求到指定健康检查端口。一个后端实例需要返回200OK码才能通过健康检查。
    后端需要返回200 OK才能通过,常见的302返回码(重定向到一个200 OK的页面)虽然在一个浏览器上看是正常的,但会导致健康检查失败

  3. 健康检查失败之后:对于顾客来说需要在后端实例上添加日志,来检查为什么健康检查会失败。这会导致

  4. ELB健康检查时报错为Timeout,说明ELB发送给该实例的健康检查请求无法在有效时间内建立连接,导致超时。多次尝试连接失败后判断后端为unhealthy状态。需要:
    检查后端实例的安全组、ACL、路由表;后端实例配置的健康检查端口是否正常监听,实例内部是否启用了iptables规则,查看是否能正确连通ELB节点

    • 1)登录到后端实例上
    • 2)netstat -tnlp:确定配置的健康检查端口是否正常监听
    • 3)iptables -S 或 iptables -L:查看iptables配置情况
    • 4)chkconfig:查看是否iptables开机紫气doing
    • 5)若希望关闭iptables以及开机自启动,可参考如下步骤:
      • chkconfig iptables off(设置开机启动为关闭)
      • chkconfig --del iptables(移除开机自启动)
      • /etc/init.d/iptables stop
      • service iptables stop
    • 6)若问题仍然存在,建议将上述命令的输出结果以及/var.log/messages、监听在健康检测配置端口的java应用的日志,一并打包发给我们进行更多的排查
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值