网站用了CDN加速后访问出现重定向次数过多的报错。

问题现象

网站用了CDN加速后访问出现重定向次数过多的报错。

问题原因

原因1:源站开启了HTTP强制跳转HTTPS的功能,并在CDN控制台上配置HTTP回源协议。在这种配置下,由于CDN的回源协议为HTTP,客户的请求协议无论是HTTP还是HTTPS时,CDN在回源时都会采用HTTP协议请求源站,此时由于源站的强制跳转配置,会返回响应让客户端重定向到HTTPS协议,而此时客户端再次发起HTTPS请求协议后,回源依然会是HTTP协议,进而再触发强制跳转,以此类推,最终造成重定向次数过多,出现报错。
原因2:源站响应的重定向页面被CDN缓存,从重定向的响应头中可以看到CDN命中缓存的HIT字段,导致客户端访问CDN时直接命中缓存,并且在重定向后访问的还是缓存的重定向页面,最终出现重定向次数过多的报错。

解决方案

针对原因1,有如下两种方案:

方案一:关闭源站的HTTP强制跳转HTTPS的功能,如果客户依然希望进行HTTP强制跳转HTTPS,可以通过CDN控制台开启HTTPS强制跳转功能。
方案二:修改CDN回源协议为HTTPS协议或跟随请求协议回源。修改为HTTPS协议回源后,CDN回源将以HTTPS协议请求源站,就不会触发源站的强制跳转功能;修改为跟随请求协议回源后,当触发源站强制跳转时,客户端也能正常重定向通过HTTPS协议访问CDN,并以HTTPS协议请求回源。

针对原因2,有如下两种方案:

方案一:CDN默认遵循源站缓存,如果是源站重定向时给出缓存头部导致CDN缓存重定向的页面,则需要源站修改缓存头部或CDN侧针对重定向页面配置强制不缓存,且配置后刷新URL缓存。
方案二:如果非源站缓存头部原因,而是在CDN侧配置的强制缓存规则导致CDN缓存,则需要修改对应缓存配置,针对重定向页面删除相关缓存配置或配置为强制不缓存,且配置后刷新URL缓存。

文章版权归原作者所有或来自互联网,未经允许请勿转载。如有侵权请联系我删除,谢谢!
THE END
分享
二维码
打赏
< <上一篇
下一篇>>
文章目录
关闭
目 录