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即可,这样就好了。

阿里云SLB出现502 Bad Gateway 错误排查解决方法的更多相关文章

  1. Nginx 502 Bad Gateway 错误的解决方法

    502 bad gateway 的解决方法 通用配置 proxy_buffer_size 4k; #设置代理服务器(nginx)保存用户头信息的缓冲区大小 proxy_buffers 4 32k; # ...

  2. nginx报502 bad GateWay错误的解决方法

    nginx+php-fpm+mysql的网站,访问nginx的某个页面,报502 GateWay的错误,一般见到此错误,可以判断是php-fpm的问题,而不是nginx的问题.通过监控nginx的错误 ...

  3. 基于nodemailer使用阿里云企业邮箱发送邮件(526错误的解决)

    在虽然日常生活中,QQ,微信等即时聊天工具几乎主导了人们的生活,但是邮件依然是现代生活不可缺少的一部分.这篇文章主要讲述使用node.js 中的nodemail模块操作阿里云的企业邮箱发送邮件 (52 ...

  4. 访问 LNMP 报 502 Bad Gateway 错误的解决办法

    LNMP : Linux + Nginx + MySQL + PHP Nginx 出现502有很多原因,但大部分原因可以归结为资源数量不够用,也就是说后端 PHP-FPM 处理有问题,Nginx 将正 ...

  5. Nginx 502 bad gateway问题的解决方法

    Nginx 502 Bad Gateway的含义是请求的PHP-CGI已经执行,但是由于某种原因(一般是读取资源的问题)没有执行完毕而导致PHP-CGI进程终止,一般来说Nginx 502 Bad G ...

  6. 阿里云服务器 Access to the path '....' is denied.解决方法

    昨天公司项目迁移服务器,从自己服务器迁移到阿里云服务器,部署完成后发现有一个页面要读取磁盘上的静态文件就报错了... 如图: 解决办法: 在 Web.Config 的 <System.Web&g ...

  7. 阿里云香港服务器IIS发布网站不成功解决方法

    刚刚弄好了一个阿里云上服务器,费老劲儿了.我买了一个香港的服务器,最低配置,专有网络,买着玩的,一个.win的域名,省的国内备案了. 遇到的问题是怎么也访问不了我IIS上发布的网站,我把我解决方法说下 ...

  8. 阿里云环境中配置tomcat7可能出现的问题及解决方法

    前提是安装好了tomcat,但是输入ip+端口无法访问,那么情况有一下几种 (1)可能防火墙没有关闭 systemctl stop firewalld.service #停止firewall syst ...

  9. 阿里云SLB漏选“健康检查正常的http状态码”导致url重定向失败问题处理

    背景:           一客户将线下电商网站迁移到阿里云上,公网出口使用阿里云SLB,SLB后端实例为ECS(webserver)web服务使用nginx.后端APP服务器使用了tomcat:to ...

随机推荐

  1. 0517JS综合练习、挂事件练习

    <!DOCTYPE html><html>    <head>        <meta charset="UTF-8">      ...

  2. 基于Jmeter+maven+Jenkins构建性能自动化测试平台

      一.目的: 为能够将相关系统性能测试做为常规化测试任务执行,且可自动无人值守定时执行并输出性能测试结果报告及统计数据,因此基于Jmeter+maven+Jenkins构建了一套性能自动化测试平台 ...

  3. Android base-adapter-helper 源码分析与扩展

    转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/44014941,本文出自:[张鸿洋的博客] 本篇博客是我加入Android 开源项 ...

  4. 玩转PHP(二)--PHP强大的时间函数:date()

    PHP具有相对来说强大的时间函数date(),该方法有下列一系列参数: 例如: echo date("Y-m-d H:i:s"); //2015-01-09 13:03:30 如果 ...

  5. 关于Google 圆角 高光 高宽 自适应 按钮

    最近看了张鑫旭老师关于Google搜索按钮的博客,感觉启示颇多.下面我就详说一下这个按钮的代码,由于W3C新版本的更新,之前的代码会有部分累赘, 在此,我做了些修改.当然,想观摩原版的可以,狠狠的戳链 ...

  6. linux下如何配置yum源

    first:挂载本地镜像文件(挂载:意为将某个文件放置在系统的一个目录下) mkdir     /media/cdrom  #新建镜像文件挂载目录 cd         /usr/local/src  ...

  7. Linux.安装phantomjs

    PhantomJS 是一个基于 WebKit 的服务器端 JavaScript API.它全面支持web而不需浏览器支持,其快速,原生支持各种Web标准: DOM 处理, CSS 选择器, JSON, ...

  8. balance.go 源码阅读

    ) //10s +随机毫秒数 后 执行下面代码     for _ = range t {         for _, v := range pBackendSvrs {             i ...

  9. index_levedb.go

    )     binary.BigEndian.PutUint64(key, fid)     return l.db.Delete(key, nil) } //关闭资源 func (l *LevelD ...

  10. 【BZOJ 3626】 [LNOI2014]LCA【在线+主席树+树剖】

    题目链接: TP 题解:   可能是我比较纱布,看不懂题解,只好自己想了…… 先附一个离线版本题解[Ivan] 我们考虑对于询问区间是可以差分的,然而这并没有什么卵用,然后考虑怎么统计答案. 首先LC ...