问题现象
接入边缘安全加速平台—安全与加速读物后浏览器无法正常访问网页,并提示重定向的次数过多。
问题原因
- 原因1:源站开启了HTTP强制跳转HTTPS的功能,并在控制台上配置HTTP回源协议。在这种配置下,由于CDN的回源协议为HTTP,客户的请求协议无论是HTTP还是HTTPS时,CDN在回源时都会采用HTTP协议请求源站,此时由于源站的强制跳转配置,会返回响应让客户端重定向到HTTPS协议,而此时客户端再次发起HTTPS请求协议后,回源依然会是HTTP协议,进而再触发强制跳转,以此类推,最终造成重定向次数过多,出现报错。
- 原因2:源站响应的重定向页面被CDN缓存,从重定向的响应头中可以看到CDN命中缓存的HIT字段,导致客户端访问CDN时直接命中缓存,并且在重定向后访问的还是缓存的重定向页面,最终出现重定向次数过多的报错。
- 原因3:CC防护开关开启且客户端或者业务无法支持对应好的CC防护策略。可以查看302状态码的响应头是否携带Set-Cookie头并且值里面带有CT6T=的字样,如果有则是该原因导致。
解决方案
针对原因1,有如下两种方案:
- 方案一:关闭源站的HTTP强制跳转HTTPS的功能,如果客户依然希望进行HTTP强制跳转HTTPS,可以通过CDN控制台开启HTTPS强制跳转功能。
- 方案二:修改CDN回源协议为HTTPS协议或跟随请求协议回源。修改为HTTPS协议回源后,CDN回源将以HTTPS协议请求源站,就不会触发源站的强制跳转功能;修改为跟随请求协议回源后,当触发源站强制跳转时,客户端也能正常重定向通过HTTPS协议访问CDN,并以HTTPS协议请求回源。
针对原因2,有如下两种方案:
- 方案一:CDN默认遵循源站缓存,如果是源站重定向时给出缓存头部导致CDN缓存重定向的页面,则需要源站修改缓存头部或CDN侧针对重定向页面配置强制不缓存,且配置后刷新URL缓存。
- 方案二:如果非源站缓存头部原因,而是在CDN侧配置的强制缓存规则导致CDN缓存,则需要修改对应缓存配置,针对重定向页面删除相关缓存配置或配置为强制不缓存,且配置后刷新URL缓存。
针对原因3,建议操作如下: