阿里云SLB出现502 Bad Gateway 错误排查解决方法

502 Bad Gateway 
The proxy server received an invalid response from an upstream server.

原本系统是通过一个SLB转发到后端ECS上的nginx,由我们自己的Nginx再反向代理了各类服务器,毕竟使用了SLB了就打算去掉nginx。分拆后发现文件服务器的SLB映射好后报了上面的502错误。

负责阿里云申请的同学给了一个排查的链接

看了看我们的系统没有超时、内容过大等问题。而且之前也是SLB->nginx->file server。这次只是去掉了nginx,所以参数上没有什么需要变化的。

负责云服务器管理的同学说我们后端服务器端口是有问题的,说健康检查有问题,让我们查服务器是否正常。但我们本身就是运行的好好的,通过ECS服务器自己的ip访问都是好的。

既然是健康检查出了问题,那么应该是阿里云SLB健康检查机制导致的。

健康检查配置说明
域名和检查路径
(仅限HTTP方式的健康检查)
HTTP健康检查默认由负载均衡系统通过后端ECS内网IP地址向该服务器应用配置的缺省首页发起http head请求。

如果您用来进行健康检查的页面并不是应用服务器的缺省首页,需要指定具体的检查路径.

因为有些应用服务器会对请求中的host字段做校验,即要求请求头中必须存在host字段。如果在健康检查中配置了域名,则SLB会将域名配置到host字段中去,反之,如果没有配置域名,SLB则不会在请求中附带host字段,因此健康检查请求就会被服务器拒绝,可能导致健康检查失败。综上原因,如果您的应用服务器需要校验请求的host字段校,那么则需要配置相关的域名,确保健康检查正常工作。

从这里可以发现SLB与ECS之间如果是HTTP协议的话,需要有一个默认的url可以接收HEAD请求,这样SLB才知道ECS是否还活着,这就是所谓的健康检查。简单点可以理解为心跳检查。

那我们的问题原因很简单就是因为文件服务没有一个可供SLB检查的默认页,所以导致了健康检查失败。解决的方法也简单,给SLB配置一个健康检查的url即可,这样就好了。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
阿里云SLBServer Load Balancer)和亚马逊ELB(Elastic Load Balancer)都是知名的云负载均衡服务,各有其优势和适用场景。选择哪个更好,取决于具体的需求和使用场景。 阿里云SLB的优点: 1. 高可用性:SLB提供了高可用性的负载均衡能力,可以自动检测并转发流量到可用的后端服务器。 2. 弹性扩展:SLB支持按需扩展,可以根据流量的变化自动调整负载均衡实例的容量。 3. 灵活的负载均衡策略:SLB支持多种负载均衡算法,如轮询、最小连接数等,可以根据应用需求选择合适的策略。 4. 多层次的健康检查:SLB可以对后端服务器进行健康检查,确保只有健康的服务器接收流量。 亚马逊ELB的优点: 1. 简化管理:ELB提供了易于使用的管理界面和API,可以方便地配置、监控和管理负载均衡实例。 2. 全球负载均衡:ELB支持全球负载均衡,可以将流量分发到多个地理位置的实例上,提供低延迟和高可用性。 3. 高度集成:ELB与亚马逊云服务(AWS)的其他服务紧密集成,如自动扩展、容器服务等,可以实现全面的云平台架构。 在选择阿里云SLB还是亚马逊ELB时,可以考虑以下因素: - 云平台:如果你已经选择了特定的云平台(阿里云或AWS),则建议使用相应平台的负载均衡服务,以便与其他云服务无缝集成。 - 功能需求:根据应用的负载均衡需求,比较SLB和ELB的功能差异,选择最符合需求的服务。 - 地域覆盖:如果你的应用需要全球负载均衡支持,可以考虑亚马逊ELB的全球负载均衡功能。 综上所述,阿里云SLB和亚马逊ELB都是成熟的云负载均衡服务,具体选择需要根据具体需求和使用情况进行评估。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值