问题现象

通过CDN加速后,访问加速域名提示:该网页无法正常运作,xxx将您重定向的次数过多。(报错:ERR_TOO_MANY_REDIRECTS。)

重定向次数过多

可能原因

由于浏览器限制了单次请求最多被重定向的次数。以Chrome浏览器为例,当该请求被重定向超过20次后,将会被浏览器主动中止,并提示重定向次数过多。

如果此类重定向在使用CDN前并未出现,通过CDN加速后出现或偶现,一般是源站配置不当,造成回源时出现了重定向的死循环,从而导致持续让用户进行重定向。

常见的根因:源站开启了强制跳转HTTPS访问,即通过HTTP回源访问时,源站会自动跳转HTTPS访问。如果此时加速域名配置了“源站使用80端口回源”或 “开启跟随协议回源”,将会使得HTTP协议回源时出现循环的问题。

以设置80端口回源为例,重定向循环的发生逻辑如下:
  1. 客户端访问加速域名http://example.aliyun.com/
  2. CDN配置了80端口回源,使用HTTP协议回源时,源站返回重定向到https://example.aliyun.com/
  3. 客户端跟随重定向访问URLhttps://example.aliyun.com/
  4. 由于CDN配置了80端口回源,此时仍然通过HTTP协议进行回源,源站再次返回重定向到https://example.aliyun.com/
  5. 客户端继续跟随重定向访问URLhttps://example.aliyun.com/,此后无限循环3~4步骤。
由上述逻辑可以看出,无论用户访问时使用HTTP协议或者HTTPS协议,只要CDN节点配置了80端口回源,将一直使用HTTP协议回源。而源站在开启强制跳转HTTPS配置时,会使得重定向陷入死循环。

解决方案

如果您遇到的问题符合上述逻辑,可以参考下文修改回源配置。

  1. 将域名源站设置为443端口,操作详情请参见配置源站
    配置端口
  2. 关闭回源协议跟随,或指定HTTPS协议回源,操作详情请参见配置回源协议
    配置回源协议
  3. 提交目录刷新任务,刷新根目录,操作详情请参见刷新和预热资源
    刷新目录
  4. 刷新任务完成后,清空本地浏览器缓存重试。