使用CDN加速后提示重定向的次数过多,解决方案。
问题现象
通过CDN加速后,访问加速域名提示:该网页无法正常运作,xxx将您重定向的次数过多。(报错:ERR_TOO_MANY_REDIRECTS。)
可能原因
由于浏览器限制了单次请求最多被重定向的次数。以Chrome浏览器为例,当该请求被重定向超过20次后,将会被浏览器主动中止,并提示重定向次数过多。
如果此类重定向在使用CDN前并未出现,通过CDN加速后出现或偶现,一般是源站配置不当,造成回源时出现了重定向的死循环,从而导致持续让用户进行重定向。
常见的根因:源站开启了强制跳转HTTPS访问,即通过HTTP回源访问时,源站会自动跳转HTTPS访问。如果此时加速域名配置了“源站使用80端口回源”或 “开启跟随协议回源”,将会使得HTTP协议回源时出现循环的问题。
以设置80端口回源为例,重定向循环的发生逻辑如下:
客户端访问加速域名http://example.com/。
CDN配置了80端口回源,使用HTTP协议回源时,源站返回重定向到https://example.com/。
客户端跟随重定向访问URLhttps://example.aliyun.com/。
由于CDN配置了80端口回源,此时仍然通过HTTP协议进行回源,源站再次返回重定向到https://example.com/。
客户端继续跟随重定向访问URLhttps://example.com/,此后无限循环3~4步骤。
由上述逻辑可以看出,无论用户访问时使用HTTP协议或者HTTPS协议,只要CDN节点配置了80端口回源,将一直使用HTTP协议回源。而源站在开启强制跳转HTTPS配置时,会使得重定向陷入死循环。
下面是以阿里云CDN为例的解决方案
如果您遇到的问题符合上述逻辑,可以参考下文修改回源配置。
将域名源站设置为443端口。
关闭回源协议跟随,或指定HTTPS协议回源。
提交目录刷新任务,刷新根目录。
刷新任务完成后,清空本地浏览器缓存重试。
只要牢记两点,只要在这2个点测试即可找到你的问题点,因为CDN服务商不同,请自行切换。
1:CDN控制台指定HTTPS协议回源。
2:网站强制指定HTTPS协议。
共有 0 条评论