当前位置: 首页 > news >正文

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

转载于:https://www.cnblogs.com/5207/p/10410587.html

相关文章:

  • bat(DOS)常用命令详解
  • 力扣(LeetCode)357
  • 来,膜拜下android roadmap,强大的执行力
  • JS · \r\n被转义导致出错
  • [译] 每天一段 Spring 5 官方文档(5.1.4.RELEASE)—— Spring Framework Overview 10
  • P3398 仓鼠找sugar (一道LCA的裸题)
  • 创建一个 Django 项目
  • GitHub如何下载clone指定的tag
  • 技术面试感觉什么都会,面试官一问回答不上来怎么办?
  • 性能测试总结(二)---测试流程篇(转载)
  • servlet,javabean,客户端跳转和服务端跳转。
  • 启动从Windows Server 2016发布的应用程序时,黑屏在应用程序可见之前出现几秒钟...
  • 如何自己制作iconfont
  • URL与URI的不同
  • Dubbo 安装监控中心
  • -------------------- 第二讲-------- 第一节------在此给出链表的基本操作
  • 【vuex入门系列02】mutation接收单个参数和多个参数
  • 【跃迁之路】【669天】程序员高效学习方法论探索系列(实验阶段426-2018.12.13)...
  • 【跃迁之路】【699天】程序员高效学习方法论探索系列(实验阶段456-2019.1.19)...
  • Angular 4.x 动态创建组件
  • iOS帅气加载动画、通知视图、红包助手、引导页、导航栏、朋友圈、小游戏等效果源码...
  • javascript 哈希表
  • java多线程
  • Meteor的表单提交:Form
  • MySQL用户中的%到底包不包括localhost?
  • mysql中InnoDB引擎中页的概念
  • python3 使用 asyncio 代替线程
  • python学习笔记-类对象的信息
  • Spring Cloud Feign的两种使用姿势
  • uni-app项目数字滚动
  • webpack4 一点通
  • 飞驰在Mesos的涡轮引擎上
  • #FPGA(基础知识)
  • #HarmonyOS:软件安装window和mac预览Hello World
  • #include到底该写在哪
  • #周末课堂# 【Linux + JVM + Mysql高级性能优化班】(火热报名中~~~)
  • (07)Hive——窗口函数详解
  • (173)FPGA约束:单周期时序分析或默认时序分析
  • (C#)一个最简单的链表类
  • (ctrl.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MDd_DynamicDebug”不匹配值“
  • (ZT) 理解系统底层的概念是多么重要(by趋势科技邹飞)
  • (附源码)ssm经济信息门户网站 毕业设计 141634
  • (附源码)计算机毕业设计ssm高校《大学语文》课程作业在线管理系统
  • (附源码)计算机毕业设计大学生兼职系统
  • (亲测有效)解决windows11无法使用1500000波特率的问题
  • (三)Hyperledger Fabric 1.1安装部署-chaincode测试
  • (十五)使用Nexus创建Maven私服
  • (转)如何上传第三方jar包至Maven私服让maven项目可以使用第三方jar包
  • (转)总结使用Unity 3D优化游戏运行性能的经验
  • .locked1、locked勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复
  • .net mvc 获取url中controller和action
  • @data注解_一枚 架构师 也不会用的Lombok注解,相见恨晚
  • @RequestMapping 的作用是什么?
  • [ C++ ] STL_vector -- 迭代器失效问题
  • [ 隧道技术 ] 反弹shell的集中常见方式(二)bash反弹shell