
我在 處設定了一個 Wordpress 站點,site.example.com
並且嘗試將 CloudFront 發行版配置為反向代理以減少來源伺服器的負載。
以前我用過雲耀斑配置非常簡單,因為 CloudFlare 知道來源伺服器的 IP 位址,它可以將請求與 SNI 一起傳送到該 IP 位址,並且請求將到達正確的位置。
例如
site.example.com@[CloudFlare IP Address] -> CloudFlare -> site.example.com@[Origin IP Address]
不過看來雲正面工作方式略有不同,它期望來源伺服器是域名而不是IP位址,所以我懷疑一旦我修改我的DNS以指向site.example.com
我的CloudFront分配的域名,那麼CloudFront將不再能夠訪問來源伺服器,因為它將指向自身
現在,為了在普通網路伺服器中克服這個問題,我只需建立第二個 DNS 記錄,例如cf-site.example.com
,在網路伺服器上將其配置為提供與 CloudFront 相同的內容,site.example.com
然後可以訪問 Origin cf-site.example.com
,我的客戶將正常訪問該站點。
然而,對於 Wordpress,如果您在訪問 cf-site.example.com 上的網站後嘗試執行此操作,它將發現該名稱與網站位址不匹配,並立即返回 301,將您重定向到網站位址,這個案例site.example.com
。這會導致無限循環並破壞網站。
我在網路上找到了很多關於如何將 CloudFront 與 Wordpress 結合使用的指南,所以它一定是可能的,我懷疑我只是錯過了一些明顯的東西
謝謝
答案1
這個問題可以透過將主機頭轉送到來源來解決,有一個行為設定:根據選定的請求標頭進行緩存