阿里云SLB漏选“健康检查正常的http状态码”导致url重定向失败问题处理-阿里云开发者社区

开发者社区> goodlife> 正文

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

简介: 阿里云SLB健康检测状态码选择不正确,导致nginx url重定向的网站访问失败处理流程。
+关注继续查看
背景:
? ? ? ? ? 一客户将线下电商网站迁移到阿里云上,公网出口使用阿里云SLB,SLB后端实例为ECS(webserver)web服务使用nginx。后端APP服务器使用了tomcat;tomcat根目录为xxx,应用程序放在其根目录下的一个二级目录AAA,要求公网用户通过域名访问时能直接重定向到二级目录AAA,而不需要手动输入AAA路径来访问网站。
网络示意图如下:
f51c981085cbf3ed29a554b4b06caa1513fd6acd
问题出现:
? ? ? 首先按照正常的配置流程完成后,在浏览器中通过域名加路径的方式能够正常访问,当在nginx上做过url重定向配置以后,再次访问时,诡异的现象出现了
如下:
浏览器中URL路径倒是被重定向成功了,但访问失败了,且报502错误。
9e6b3e31c8498b468a9d40216611a3bff4588f7d
问题处理过程:
? ? ? ? 好吧,当看到上面出现的502报错时,我们都会立马想到可能是nginx服务有问题,或者是后端的tomcat服务有问题,那我就一步一步排查了。
1 确认tomcat服务是否正常
? 常用方法:
? 查看tomcat服务是否开启,端口是否开启,是否有防火墙策略阻止,tomcat配置是否正常
2 确认tomcat正常后在到nginx服务器上,看nginx相关服务是否正常(?在这里折腾得最久了)
? 首先检测了nginx的服务正常后,开始怀疑,是重定向配置有问题
重定向配置如下:
06ed89d8f0179a5e25c6cdaa09429df627f33428
3 抓包
? ? ? ?在这里处理的过程中我们换过很多种重定向的方式,但问题依然存在,无赖之下,我们对访问时,在浏览器下抓包,和通过curl 获取访问信息

浏览器抓包,看到第一个状态码是301。
如下图:
82002c183b311d1ccaa3ea3d34e709b1cdbae98b
curl 抓取,看到的也是301状态码。
如下图:
9e5304a885a39b21696051efa86876385c5bb5ce
? ? ? ?通过上面的两种方法抓包来看,301是重定向的状态码,,访问并没有错误,可为什么网页就是不能正常访问呢,此时我们开始怀疑阿里云的SLB的配置了。

4 阿里云SLB 端口健康检测配置修改
? ? ? 我们一步步检测阿里云SLB的配置,在端口的健康检测配置项中看到了“正常状态码”配置
如下:
758e6564767b71c6624f412414362b7c92c22887
? ? ?默认我们都是使用状态码 200 表示健康检测成功,可是我们现在返回的状态码是301,但是我们没有选择,不知道跟这个有没有关系,于是我们将http_3xx 选中
6a7168c19a3bcc9f99d0a802f40d5ed4c63bf2f1
再次访问网站,终于看到希望了

总结:
? ? ? ? 阿里云SLB健康检测,默认情况通过页面返回的状态码200表示后台服务正常,如果网站有做过url重定向,它返回的重定向状态码是3xx 而不是默认的2xx ,此时在配置SLB时,如果在健康检测配置项中不勾选 3xx 那么它会判断为后端服务异常,导致网站访问失败。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
阿里云SLB漏选“健康检查正常的http状态码”导致url重定向失败问题处理
阿里云SLB健康检测状态码选择不正确,导致nginx url重定向的网站访问失败处理流程。
7747 0
网站上线之前需要检查的13个问题
废话少说: 1、用了Google分析等统计工具了吗? 你应该跟踪每个页面的访问情况,哪些受欢迎,哪些挣得钱多。 2、用了Pagespeed和Yslow了吗? 70%用户看得到的速度提升都是通过客户端优化完成的。
627 0
Android开发教程 - 使用Data Binding Android Studio不能正常生成相关类/方法的解决办法
本系列目录 使用Data Binding(一)介绍 使用Data Binding(二)集成与配置 使用Data Binding(三)在Activity中的使用 使用Data Binding(四)在Fragment中的使用 ...
1004 0
Apache Flink 零基础入门教程(六):状态管理及容错机制
本文主要分享内容如下:状态管理的基本概念;状态的类型与使用示例;容错机制与故障恢复;
5149 0
Apache Flink 零基础入门教程(六):状态管理及容错机制
本文主要分享内容如下: - 状态管理的基本概念; - 状态的类型与使用示例; - 容错机制与故障恢复;
1009 0
使用阿里云Serverless函数计算实现HTTP健康检查+故障短信通知
定时对网站/API进行请求,根据请求响应判断服务是否可用,网站是否存在宕机,当发生宕机时,发送短信通知管理员.
1082 0
+关注
goodlife
曾负责过银行,政府,医疗,教育,运营商等行业的数据中心建设和运维。有过4年系统集成经验,3年运维经验,了解传统数据中心在建设和运维上的痛点、也清楚云计算存在的优势,擅长云上架构设计(网络架构,安全架构,应用架构,高可用与容灾架构等),在企业上云迁移,企业云上运维方面有着丰富的实战
12
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载
http://www.vxiaotou.com