问题现象

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缓存。

相关新闻

微信

15323421841