問題現(xiàn)象

通過CDN加速后,訪問加速域名提示:該網(wǎng)頁無法正常運作,xxx將您重定向的次數(shù)過多。(報錯:ERR_TOO_MANY_REDIRECTS。)

重定向次數(shù)過多

可能原因

由于瀏覽器限制了單次請求最多被重定向的次數(shù)。以Chrome瀏覽器為例,當(dāng)該請求被重定向超過20次后,將會被瀏覽器主動中止,并提示重定向次數(shù)過多。

如果此類重定向在使用CDN前并未出現(xiàn),通過CDN加速后出現(xiàn)或偶現(xiàn),一般是源站配置不當(dāng),造成回源時出現(xiàn)了重定向的死循環(huán),從而導(dǎo)致持續(xù)讓用戶進行重定向。

常見的根因:源站開啟了強制跳轉(zhuǎn)HTTPS訪問,即通過HTTP回源訪問時,源站會自動跳轉(zhuǎn)HTTPS訪問。如果此時加速域名配置了“源站使用80端口回源”或 “開啟跟隨協(xié)議回源”,將會使得HTTP協(xié)議回源時出現(xiàn)循環(huán)的問題。

以設(shè)置80端口回源為例,重定向循環(huán)的發(fā)生邏輯如下:
  1. 客戶端訪問加速域名http://example.aliyun.com/
  2. CDN配置了80端口回源,使用HTTP協(xié)議回源時,源站返回重定向到https://example.aliyun.com/
  3. 客戶端跟隨重定向訪問URLhttps://example.aliyun.com/。
  4. 由于CDN配置了80端口回源,此時仍然通過HTTP協(xié)議進行回源,源站再次返回重定向到https://example.aliyun.com/
  5. 客戶端繼續(xù)跟隨重定向訪問URLhttps://example.aliyun.com/,此后無限循環(huán)3~4步驟。
由上述邏輯可以看出,無論用戶訪問時使用HTTP協(xié)議或者HTTPS協(xié)議,只要CDN節(jié)點配置了80端口回源,將一直使用HTTP協(xié)議回源。而源站在開啟強制跳轉(zhuǎn)HTTPS配置時,會使得重定向陷入死循環(huán)。

解決方案

如果您遇到的問題符合上述邏輯,可以參考下文修改回源配置。

  1. 將域名源站設(shè)置為443端口,操作詳情請參見配置源站。
    配置端口
  2. 關(guān)閉回源協(xié)議跟隨,或指定HTTPS協(xié)議回源,操作詳情請參見配置回源協(xié)議
    配置回源協(xié)議
  3. 提交目錄刷新任務(wù),刷新根目錄,操作詳情請參見刷新和預(yù)熱資源
    刷新目錄
  4. 刷新任務(wù)完成后,清空本地瀏覽器緩存重試。