问题现象
通过CDN加速后,访问加速域名提示:该网页无法正常运作,xxx将您重定向的次数过多。(报错:ERR_TOO_MANY_REDIRECTS。)
可能原因
由于浏览器限制了单次请求最多被重定向的次数。以Chrome浏览器为例,当该请求被重定向超过20次后,将会被浏览器主动中止,并提示重定向次数过多。
如果此类重定向在使用CDN前并未出现,通过CDN加速后出现或偶现,一般是源站配置不当,造成回源时出现了重定向的死循环,从而导致持续让用户进行重定向。
常见的根因:源站开启了强制跳转HTTPS访问,即通过HTTP回源访问时,源站会自动跳转HTTPS访问。如果此时加速域名配置了“源站使用80端口回源”或 “开启跟随协议回源”,将会使得HTTP协议回源时出现循环的问题。
以设置80端口回源为例,重定向循环的发生逻辑如下:
- 客户端访问加速域名
http://example.aliyun.com/
。 - CDN配置了80端口回源,使用HTTP协议回源时,源站返回重定向到
https://example.aliyun.com/
。 - 客户端跟随重定向访问URL
https://example.aliyun.com/
。 - 由于CDN配置了80端口回源,此时仍然通过HTTP协议进行回源,源站再次返回重定向到
https://example.aliyun.com/
。 - 客户端继续跟随重定向访问URL
https://example.aliyun.com/
,此后无限循环3~4步骤。
解决方案
如果您遇到的问题符合上述逻辑,可以参考下文修改回源配置。