通过CDN访问源站提示重定向的次数过多

更新时间:

问题描述

源站配置了阿里云CDN或者全站加速后,使用浏览器进行访问CDN加速资源后,无限循环301/302状态码,出现如下错误提示。本文以CDN产品为例进行介绍。

XXX.XXX.XXX 将您重定向的次数过多。

尝试清除 Cookie.

ERR_TOO_MANY_REDIRECTS

问题原因

源站开启了HTTP重定向至HTTPS的功能,并且CDN控制台上配置的回源端口为80。在这种情况下,由于CDN回源端口为80,客户端无论是通过HTTP还是HTTPS访问CDN加速域名时,CDN在回源的时候都是使用HTTP请求源站,此时会触发源站的HTTPS强制跳转逻辑,然后源站会要求CDN重新发送一个HTTPS的请求,但是CDN仍然会发送HTTP请求,然后再进行跳转,以此类推,就会出现反复重定向问题,最终导致出现报错。

解决方案

排查问题原因

  1. 打开浏览器的开发者模式,切换至Network标签页,然后重新访问源站,发现出现较多301重定向的情况。
  2. 使用HTTP协议访问源站域名进行测试,确认源站开启了HTTP重定向至HTTPS的功能,并且确认CDN控制台上配置的回源端口为80。

解决方法

本文介绍如下两种解决方法,请根据实际情况选择具体的方法。

方法一

登录CDN控制台域名管理页面单击目标域名对应的 管理,然后单击 修改配置,将CDN的回源端口设置为443,并单击 确定。设置为443端口以后,CDN回源时会以HTTPS协议请求源站,就不会触发源站的强制跳转逻辑。

方法二

如果不希望将CDN的回源端口改成443,仍希望CDN以HTTP协议回源,这种情况下可以考虑关闭源站的HTTP重定向至HTTPS的强制跳转功能。

更多信息

由于使用了CDN,且客户端的请求都是先请求到CDN节点。如果希望CDN节点获取客户端的请求是HTTPS协议时,可以在CDN控制台上设置HTTP强制跳转,具体信息请参考配置强制跳转

适用于

  • CDN
  • 全站加速