负载均衡SLB实例的服务地址访问超时

作者阿里云代理 文章分类 分类:图文教程 阅读次数 已被围观 1133

问题描述

负载均衡SLB实例的服务地址访问超时。

问题原因

问题原因可能有如下几点:

  • SLB实例的服务地址被安全防护,如流量黑洞和流量清洗、WAF防护。客户端端口不足。尤其在进行压力测试时,客户端端口不足会导致建立连接失败,负载均衡SLB默认会抹除TCP连接的timestamp属性,Linux协议栈的tw_reuse(time_wait状态连接复用)无法生效,time_wait状态连接堆积导致客户端端口不足,最终访问超时。
  • 后端服务器accept队列满,导致后端服务器不回复syn_ack报文,客户端超时。
  • 某些应用对连接超时的RST报文处理不当。负载均衡SLB建立TCP连接后,如果900秒未活动,则会向客户端和服务器双向发送RST报文以断开连接。有些应用对RST异常处理不当,可能会对已关闭的连接再次发送数据,导致应用超时。
  • 后端服务器访问四层负载均衡SLB的服务地址会导致连接失败,常见的场景有:后端应用使用URL拼接的方式跳转访问。

解决方案

  • 如果您对实例或数据有修改、变更等风险操作,务必注意实例的容灾、容错能力,确保数据安全。
  • 如果您对实例(包括但不限于ECS、RDS)等进行配置与数据修改,建议提前创建快照或开启RDS日志备份等功能。
  • 如果您在阿里云平台授权或者提交过登录账号、密码等安全信息,建议您及时修改。

请根据问题原因匹配对应的解决方法:

  • SLB实例的服务地址被安全防护
    登录云盾DDoS防护产品控制台,检查SLB实例的状态。
  • 客户端端口不足
    客户端使用长连接代替短连接,通过RST报文断开连接,socket设置SO_LINGER属性 ,而不是通过FIN包的方式断开连接。
  • 后端服务器accept队列满
    如果后端服务器中默认的net.core.somaxconn的值为128,您可以参考如下命令,更改该参数的值,并重启后端服务器上的应用。
    sysctl -w net.core.somaxconn=1024
    说明:此处仅为建议,您可以根据业务环境进行调整。建议提前创建快照或备份相关数据文件。
  • 某些应用对连接超时的RST报文处理不当
    建议优化客户端程序,及时关闭已使用完毕的连接。
  • 后端服务器访问四层负载均衡SLB的服务地址会导致连接失败
    建议改用七层的HTTP监听或HTTPS监听。
    • 如果您有其他问题,可以联系北京志远天辰阿里云代理商,为您提供一对一专业全面的技术服务,同时新/老阿里云会员,均可享受我公司代理商价格欢迎咨询 欢迎咨询.gif
本公司销售:阿里云新/老客户,只要购买阿里云,即可享受折上折优惠!>

我有话说: