CDN加速后提示重定向的次数过多的解决方案

问题描述

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

重定向次数过多

常见原因

image
  1. 用户通过HTTPS协议(443端口)访问加速域名(如 https://example.aliyun.com/)。

  2. CDNHTTP协议(80 端口)回源(如http://example.aliyun.com/)。

  3. 源站服务器(如Nginx)配置了HTTPHTTPS的重定向规则,通过HTTP协议回源时,服务器会返回301/302状态码,并且将请求重定向到HTTPS协议的URL(例如 https://example.aliyun.com/)。随后,客户端(如浏览器)会遵循跳转规则,通过HTTPS协议(默认端口443)重新发起请求,最终访问加速域名。

  4. 上述过程形成循环,超过浏览器单次请求允许的重定向次数后,浏览器终止请求并报错。

解决方案

如果您遇到的问题符合上述逻辑,您可以完成以下四步来解决您的问题。

步骤一:将源站回源端口设置为443

  1. 登录CDN控制台

  2. 在左侧导航栏,单击域名管理

  3. 域名管理页面,找到目标域名,单击操作列的管理

  4. 源站信息区域,选择编辑源站配置。

  5. 将源站的端口信息改为443,然后点击确定

    配置端口

步骤二:修改回源协议类型为跟随

如果没有开启回源协议功能,则可以忽略此步骤。

  1. 登录CDN控制台

  2. 在左侧导航栏,单击域名管理

  3. 域名管理页面,找到目标域名,单击操作列的管理

  4. 在指定域名的左侧导航栏,单击回源配置

  5. 配置页签中,找到回源协议区域,点击修改配置

  6. 协议类型选择跟随,然后点击确定

    配置回源协议

步骤三:对资源的缓存进行刷新

  1. 登录CDN控制台

  2. 在左侧导航栏,单击刷新预热

  3. 操作类型选择刷新,操作方式选择目录

  4. URL中填写您的根目录地址(例如,若加速域名为https://www.example.com/image/static/1.png,那么您需要在此处填写的URLhttps://www.example.com/。此处需要注意,目录刷新的URL必须以https://http://开头,以/结尾)。

  5. 点击提交,开始缓存刷新的任务。

  6. 操作记录中可以看到缓存刷新任务的进度。

    刷新目录

步骤四:清除本地浏览器缓存

此处以Chrome浏览器为例作为演示。

  1. Chrome浏览器右上角,依次点击“更多”图标 展开然后 删除浏览数据

  2. 选择时间范围,例如过去一小时时间不限

  3. 选择要移除的信息的类型(缓存的图片和文件为必选项,其他选项为可选项)。

  4. 点击删除数据

验证步骤

您可以通过以下方式验证:

  1. 使用curl -I 加速域名(例如:curl -I https://www.example.com/image/static/1.png)检查响应头是否包含Location跳转信息。如果响应头不包含Location,说明问题已解决。

  2. 或者,使用浏览器无痕模式直接访问加速域名进行验证,如果能够正常访问,说明问题已解决。