阅读340 返回首页    go 微信


健康检查异常的排查思路__最佳实践_负载均衡-阿里云

在负载均衡服务中开启健康检查功能后,当后端某个 ECS 健康检查出现问题时,会将请求转发到其他健康检查正常的 ECS 上。当该 EC S恢复正常运行时,负载均衡会将其自动恢复到对外或对内的服务中。负载均衡健康检查的实现机制可以 点击这里 ,在“健康检查”章节中查看。

针对 7 层( HTTP 协议)负载均衡服务,当监听获取到健康检查“异常”的信息时,可以排查以下方面:

  • 确保您能够直接通过 ECS 访问到您的应用服务。
  • 确保后端服务器开启了相应的端口,该端口必须与您在负载均衡监听配置中配置的后端端口保持一致。
  • 检查后端 ECS 内部是否开启了防火墙或其他的安全类防护软件,这类软件很容易将负载均衡服务的本地 IP 地址屏蔽掉,导致负载均衡服务无法跟后端服务器进行通讯。
  • 检查负载均衡健康检查参数设置是否正确,建议参照缺省提供的健康检查参数进行设置。
  • 建议使用静态页面来进行健康检查,如果您用于健康检查的页面在后端 ECS 应用服务器上并不是缺省首页,需要您在健康检查配置中指定该页面的URL。健康检查指定的检测文件,建议是以 html 形式的简单页面,只用于检查返回结果,不建议用 php 等动态脚本语言。
  • 检查后端 ECS 资源是否有较高负载,降低了 ECS 对外提供服务的响应速度。

另外,由于7层( HTTP 协议)负载均衡服务跟后端 ECS 之间通过内网通讯,因此需要 ECS 监听内网或者全网端口。您可使用以下方法进行检查:

  1. 检查监听功能是否正常。

    假设负载均衡前端端口是 80,ECS 后端端口也是 80,ECS 内网 IP 是 10.11.192.1。在服务器上运行以下命令,如果能看到 10.11.192.1:80 的监听信息,或者 0.0.0.0:80 的监听信息,说明这部分端口的监听正常。

    • Windows 服务器上运行:netstat -ano | findstr :80
    • Linux 服务器上运行:netstat -anp | grep :80
  2. 检查服务器内网防火墙是否放行 80 端口,可以暂时关闭防火墙进行测试。输入以下命令关闭防火墙。

    • Windows:firewall.cpl
    • Linux:/etc/init.d/iptables stop
  3. 检查后端端口是否正常。

    • 对于 4 层负载均衡,使用 telnet 测试有响应即为正常。本例中,使用 telnet 10.11.192.1 80 来测试。
    • 对于 7 层负载均衡,HTTP 状态码需要是 200 等代表正常的状态码,检验方法如下:
      • Windows:直接在 ECS 上的浏览器内输入内网 IP 测试是否正常,本例是:https://10.11.192.1
      • Linux:使用 curl -I 命令查看状态是否为 HTTP/1.1 200 OK,本例是: curl -I 10.11.192.1

最后更新:2016-12-14 16:42:01

  上一篇:go 监控数据__监控_用户指南_负载均衡-阿里云
  下一篇:go 获取来访真实IP的方法__最佳实践_负载均衡-阿里云