接入CDN/WAF后出现循环重定向问题的排查记录

简介: 一例客户网站接入CDN/WAF后,出现301循环重定向的问题处理


一、问题描述

客户反馈一个CDN加速域名解析切换到CDNCNAME之后,访问出现301循环重定向的现象。

efa4996e7b9cf25115d00f22e5a0b1674b58b711 

 


与客户确认目前的业务架构如下:

4498f0ba8ac6c1469f9b2d90cb4680a877f33bb9


 

 

测试直接访问WAF(阿里云CDN源站),响应301 Redirect

测试直接访问AWS CloudFront(阿里云WAF源站),可以正常访问到网站内容。

b6ec1ccc514162ae3aae95a9ffe04798433b4714

 

二、分析验证

经过CDN/WAF后得到的结果与直接访问源站的结果不一致的情况,一般来说是由于CDN/WAF回源时的请求与直接访问源站时的请求有区别,导致了源站做出了不同的响应结果。

对于301循环重定向的情况,最常见的一种情况就是http-->https的跳转。问题可以稳定复现,所以很容易测试和定位。

f7bed1ef820e26a5863a185e28570ca5f70946b8

 

 

通过http直接访问AWS CloudFront,可以看到AWS响应了301 Redirect,重定向到https

b43bdabb541cac37cf949130f8278fc5e402c67c

 

 

进一步核实,WAF上配置了“Enable HTTP back-to-source”的开关,强制WAF使用http协议回源。

45dc3a671d2d12744a24902f62eee5b6aad5b499

 

 

循环重定向的访问路径:

客户浏览器 https --> 阿里云CDN https--> 阿里云WAF http --> AWS CloudFront CDN 301 --> 客户浏览器 https

 

四、解决方案

1、首先,联系客户在WAF控制台上关闭“Enable HTTP back-to-source”的开关,使WAF回源时使用https协议。

2、此外,注意到客户在CDN上开启了“Use the same protocol as the back-to-source protocol”的开关,这时,如果用户通过http协议访问CDNCDN使用http协议回源,所以建议客户同时在CDN控制台上关闭“Use the same protocol as the back-to-source protocol”的开关,强制CDN使用https协议回源WAF

3ce04b5ec7b5294901c10d12b6e8448a3d6409a4

最后,为了清空CDN301状态的缓存,请客户在CDN控制台上进行手工刷新操作。

客户反馈操作完成后,测试业务恢复正常。

 

五、新的问题

问题解决几分钟后,客户反馈部分的PC、手机上访问网站还是会出现301循环重定向的情况。有的人,同一台电脑上的不同浏览器,有些正常,有些不正常。尝试清理浏览器的缓存后问题依旧。

a7d4aadd297bee291387830ca06ef781b6f3a752 


六、分析测试

通过在有问题的客户端上分析http响应头,发现一些CDN节点上还有301状态的缓存。难道是刷新没有完全成功?

进一步查看CDN节点的缓存时间,是在客户操作之后才缓存的。

4e80d31bdf09870976276525e9a533efdf589d0f

 

 

通过检查客户CDN配置,发现客户没有关闭“Use the same protocol as the back-to-source protocol”的开关。

而另一方面,当有https的请求发到AWS上时,AWS响应的200 OK的响应头中有no-cacheheader

a9f8541cfaf509430c7428c8969e3637a2acac60

 

 

当有http的请求发到AWS上时,AWS响应的301 Redirect的响应头中没有no-cacheheader

c4ce1d37c80aae32ec662539cb1c725dc16bcd53

所以无论有多少人正常的通过https协议成功网站,CDN都不会缓存。而一旦有人不小心用http协议访问了这个网址后,CDN就会缓存住301的状态,导致后续的访问者(无论是http还是https)都会出现301循环重定向的错误。

此外,对于301的状态,一些浏览器(FireFox、移动端的Safari等)会一直进行缓存,所以还需要手工清理浏览器的本地缓存。

 

七、彻底解决

1、联系客户关闭“Use the same protocol as the back-to-source protocol”的开关。

2、与客户确认业务不需要http协议的访问,在阿里云CDN上配置http --> https的跳转。

e81ab707b0c8f554e1df83f6f617e21ac7f47079

3、操作后,手工刷新CDN缓存,测试全部恢复正常。

 

八、附录:CDN/WAF访问协议处理流程

9d523d9e6b1ab6dd44484941450984ee20466a65

 

目录
相关文章
|
2月前
|
测试技术 网络架构
【技术干货连载 一】业务经过WAF HTTP 400问题排查
教你如何排查和解决业务经过WAF 七层代理HTTP 400问题原因?
35 1
|
边缘计算 缓存 监控
【CDN 排查方案-1】认识 CDN 网络调优
面向不同业务类型的网站,很多人都选择了 CDN 加速来优化自己的网站,目的在于加速网民的体验效果,赢取流量。 在网站调优的过程中,如果正确理解基于 CDN 的网络调优以及正确的配合 CDN 服务方来快速提供调优信息做了详细的讲解, 希望对大家有用,希望对从事 CDN 的人和对网络调优感兴趣的人能有作用。
【CDN 排查方案-1】认识 CDN 网络调优
|
安全 应用服务中间件 nginx
CDN页面优化不生效排查遇到的坑
如果源站响应给CDN的数据是Gzip压缩以后的数据会导致CDN的页面优化不生效。本文详细讲述了问题的原因以及排查过程,并讲述了Nginx关于Gzip的压缩配置,同时介绍了CDN作为代理服务,引入了Via header以后对Nginx服务器的影响。
5919 1
CDN页面优化不生效排查遇到的坑
|
弹性计算 监控 Kubernetes
【案例分享】CDN+WAF流量突增排查案例
阿里云CDN结合WAF使用,WAF作为CDN的源站,是较为常见的使用方式,可以充分发挥CDN的分发加速以及WAF的安全防护能力,一般架构为CDN-->WAF-->SLB-->ECS;但复杂的架构往往也会增大问题排查的复杂程度,本文和大家分享一起由于WAF配置问题引发CDN流量异常增长的案例。
1735 0
【案例分享】CDN+WAF流量突增排查案例
|
域名解析 弹性计算 网络协议
|
域名解析 缓存 网络协议
【CDN 常见问题】CDN 接入配置及常见问题
CDN顺利接入线上系统的域名是每个客户头疼的问题,本文档通过详述CDN接入配置各步骤配置以及每部设置常遇到的疑惑点进行解惑,让客户可以将顺利迁移至CDN提供加速服务。
【CDN 常见问题】CDN 接入配置及常见问题
|
JavaScript 网络协议 Shell
【OSS 排查方案-2】CDN+OSS 基础排查工具
工具说明: CDN+OSS 的服务架构。 目的:当用户遇到 CDN + OSS 投诉问题后,可以先用此工具测试一下基本的测试指标,初步判断问题故障点,同时可以将脚本结果粘贴给阿里云客服更快定位信息。 使用方法:sh check_cdn_oss.sh 域名 请求URL OSS公网域名 Usge: check_cdn_oss.sh www.zhangyb.mobi http://www.zhangyb.mobi/index.html youkou.oss-cn-beijing.aliyuncs.com 如有需求,可提改进意见,工具会继续完善,谢谢。
|
Web App开发 域名解析 缓存
接入CDN/WAF后出现循环重定向问题的排查记录
一例客户网站接入CDN/WAF后,出现301循环重定向的问题处理
接入CDN/WAF后出现循环重定向问题的排查记录
|
3月前
|
域名解析 网络协议 安全
阿里云CDN
本文介绍阿里云CDN产品中涉及的基本概念,便于您更准确地理解和使用CDN产品。
65 5
|
5天前
|
缓存 边缘计算 网络协议
阿里云CDN介绍
阿里云CDN介绍
16 0