最近公司站群遷移,備份Web文檔,導(dǎo)出數(shù)據(jù)庫(kù),再還原到目標(biāo)服務(wù)器(上傳,解壓,導(dǎo)入數(shù)據(jù)庫(kù)),改數(shù)據(jù)庫(kù)配置信息,一頓操作猛如虎,最后發(fā)現(xiàn)網(wǎng)站全不能訪問(wèn)了,Chrome提示當(dāng)前頁(yè)面重定向次數(shù)過(guò)多,打開(kāi)Console一看,全是301重定向到當(dāng)前頁(yè)面的
導(dǎo)致這個(gè)問(wèn)題的最根本原因還是我想偷懶,想利用Cloudflare的SSL的靈活模式,省去源服務(wù)器申請(qǐng)SSL的步驟,因?yàn)槊赓M(fèi)的SSL品牌Let's Encrypt每三個(gè)月就要申請(qǐng)一次,怕忘記導(dǎo)致網(wǎng)站HTTPS失效
Cloudflare SSL靈活模式示意圖
但是我們這次是遷移站點(diǎn),不是新建站點(diǎn),所以原來(lái)數(shù)據(jù)庫(kù)里的固定鏈接和配置全都是帶https的絕對(duì)路徑,而我偷懶又沒(méi)給源站點(diǎn)開(kāi)啟https,所以當(dāng)Clouflare去訪問(wèn)源站點(diǎn)的時(shí)候,源站點(diǎn)又會(huì)重定向繼續(xù)訪問(wèn)https站點(diǎn),這樣就形成了死循環(huán)
知道這點(diǎn)后,解決辦法也就明確了:即給每個(gè)源站點(diǎn)申請(qǐng)SSL即可,Cloudflare這邊的SSL配置為完全嚴(yán)格模式
下面具體描述一下重定向過(guò)多的坑位有哪些:
官方文檔明確表示,大部分都是SSL配置的方式不對(duì)引起的,我們這次也不例外
確保在服務(wù)器提供商這邊的防火墻(安全規(guī)則)開(kāi)啟了443端口入方向的權(quán)限,即https需要用到的端口,否則申請(qǐng)了SSL也打不開(kāi)網(wǎng)站,阿里云,騰訊云尤其注意這個(gè)設(shè)置
如果已經(jīng)開(kāi)啟Cloudflare代理模式,而且是使用寶塔自動(dòng)申請(qǐng)SSL的,需先關(guān)閉代理模式,等待10分鐘左右生效后再去申請(qǐng)SSL,否則域名校驗(yàn)通不過(guò)(因?yàn)樾r?yàn)的時(shí)候會(huì)直接去訪問(wèn)https站點(diǎn)了),申請(qǐng)成功后再開(kāi)啟Cloudflare代理模式,并且把SSL設(shè)置為完全嚴(yán)格模式
如果源站是自簽SSL選擇嚴(yán)格模式,如果源站不開(kāi)啟SSL,則選擇靈活模式
將www記錄解析為A記錄,不要解析為CNAME記錄指向主域名,因?yàn)槿绻鸚ordPress設(shè)置的固定網(wǎng)址帶www,而www網(wǎng)址又通過(guò)CNAME不斷往非www網(wǎng)址跳轉(zhuǎn),這時(shí)WordPress又會(huì)強(qiáng)制跳轉(zhuǎn)回www子域名,形成死循環(huán)
寶塔面板自動(dòng)申請(qǐng)SSL,如果失敗關(guān)閉Cloudflare代理后重試
www子域名也使用A記錄來(lái)做解析,切記不要使用cname來(lái)解析,開(kāi)啟/關(guān)閉代理也在這里設(shè)置
以上就是這次站群遷移踩的坑,如果您也遇到同樣問(wèn)題,希望本文能有所幫助!大家對(duì)Cloudflare全球云加速有興趣或疑問(wèn)的,歡迎關(guān)注公眾號(hào)“不用上班的程序員”可添加我交流!