配置了阿里云CDN或者全站加速后,使用瀏覽器進(jìn)行訪問,出現(xiàn)如下錯(cuò)誤提示。
XXX.XXX.XXX 將您重定向的次數(shù)過多。
嘗試清除 Cookie.
ERR_TOO_MANY_REDIRECTS
一、問題原因
源站開啟了HTTP重定向至HTTPS的功能,并且CDN控制臺(tái)上配置的回源端口為80。在這種情況下,由于CDN回源端口為80,客戶端無論是通過HTTP還是HTTPS訪問CDN加速域名時(shí),CDN在回源的時(shí)候都是使用HTTP請(qǐng)求源站,此時(shí)會(huì)觸發(fā)源站的HTTPS強(qiáng)制跳轉(zhuǎn)邏輯,然后源站會(huì)要求CDN重新發(fā)送一個(gè)HTTPS的請(qǐng)求,但是CDN回源的時(shí)候仍然會(huì)發(fā)送HTTP回源請(qǐng)求,然后再進(jìn)行跳轉(zhuǎn),以此類推,就會(huì)出現(xiàn)反復(fù)重定向問題,最終導(dǎo)致出現(xiàn)報(bào)錯(cuò)。
二、解決方法
(一)方法一
登錄CDN控制臺(tái),在域名管理頁面單擊目標(biāo)域名對(duì)應(yīng)的管理,然后單擊 修改配置,將CDN的回源端口設(shè)置為443,并單擊 確定。設(shè)置為443端口以后,CDN回源時(shí)會(huì)以HTTPS協(xié)議請(qǐng)求源站,就不會(huì)觸發(fā)源站的強(qiáng)制跳轉(zhuǎn)邏輯。
(二) 方法二
將協(xié)議跟隨回源設(shè)置為“跟隨”。設(shè)置為跟隨以后,源站發(fā)起HTTPS重定向以后,CDN回源協(xié)議跟隨為HTTPS回源。
登錄CDN控制臺(tái)—>在左側(cè)導(dǎo)航欄,單擊域名管理—>在域名管理頁面,單擊目標(biāo)域名對(duì)應(yīng)的管理—>在指定域名的左側(cè)導(dǎo)航欄,單擊回源配置—>在回源協(xié)議區(qū)域,打開回源協(xié)議開關(guān)—>單擊修改配置—>在靜態(tài)協(xié)議跟隨回源對(duì)話框,選擇的回源協(xié)議類型為:跟隨、HTTP或HTTPS。
(三) 方法三
如果不希望將CDN的回源端口改成443,仍希望CDN以HTTP協(xié)議回源,這種情況下可以考慮關(guān)閉源站的HTTP重定向至HTTPS的強(qiáng)制跳轉(zhuǎn)功能。
(四)方法四
這個(gè)不叫解決方法,把你的域名解析遷移至阿里云運(yùn)解析。我開始解析在DNSPOD(這個(gè)后來被鵝廠收購),不論怎么搞,就是不行,不是這問題就是那問題,后來遷入阿里云解析,使用CDN 加速,沒有一點(diǎn)問題啊,奇怪了。
三 、特別注意
如果按照上述建議修改配置以后問題還未解決,則可能是301被CDN節(jié)點(diǎn)緩存了,需要刷新下CDN的緩存(登錄CDN控制臺(tái) —> 在左側(cè)導(dǎo)航欄,單擊刷新預(yù)熱 —> 在刷新緩存區(qū)域,您可以根據(jù)所需,配置刷新或預(yù)熱信息)。下面是一個(gè)異?,F(xiàn)象的案例,訪問HTTPS的URL以后,301重定向Location到同樣的HTTPS地址,從Response Headers里可以看到301被CDN HIT緩存住了。