问题现象
试用全站加速后浏览器无法正常访问网页,并提示重定向的次数过多。
问题原因
原因1:源站开启了HTTP强制跳转HTTPS的功能,并在客户控制台上配置HTTP回源协议。在这种配置下,由于全站加速的回源协议为HTTP,客户的请求协议无论是HTTP还是HTTPS时,全站加速在回源时都会采用HTTP协议请求源站,此时由于源站的强制跳转配置,会返回响应让客户端重定向到HTTPS协议,而此时客户端再次发起HTTPS请求协议后,回源依然会是HTTP协议,进而再触发强制跳转,以此类推,最终造成重定向次数过多,出现报错。
原因2:源站响应的重定向页面被全站缓存,从重定向的响应头中可以看到全站命中缓存的HIT字段,导致客户端访问全站时直接命中缓存,并且在重定向后访问的还是缓存的重定向页面,最终出现重定向次数过多的报错。
解决方案
针对原因1,有如下两种方案:
方案一:关闭源站的HTTP强制跳转HTTPS的功能,如果客户依然希望进行HTTP强制跳转HTTPS,可以通过客户控制台开启HTTPS强制跳转功能。操作指南详见:强制跳转。
方案二:修改回源协议为HTTPS协议或跟随请求协议回源。修改为HTTPS协议回源后,CDN回源将以HTTPS协议请求源站,就不会触发源站的强制跳转功能;修改为跟随请求协议回源后,当触发源站强制跳转时,客户端也能正常重定向通过HTTPS协议访问全站,并以HTTPS协议请求回源。操作指南详见:回源协议。
针对原因2,有如下两种方案:
方案一:全站默认遵循源站缓存,如果是源站重定向时给出缓存头部导致全站缓存重定向的页面,则需要源站修改缓存头部或全站侧针对重定向页面配置强制不缓存,且配置后刷新URL缓存。操作指南详见:缓存过期时间。
方案二:如果非源站缓存头部原因,而是在全站侧配置的强制缓存规则导致全站缓存,则需要修改对应缓存配置,针对重定向页面删除相关缓存配置或配置为强制不缓存,且配置后刷新URL缓存。操作指南详见:缓存过期时间。