建立 CloudFront 分佈 - WordPress on AWS 的最佳實務

建立 CloudFront 分佈

透過遵循分佈建立 CloudFront Web 分佈,自動建立的預設來源和行為將用於動態內容。建立四個額外的行為,以進一步自訂處理靜態和動態請求的方式。下表彙總五個行為的組態屬性。您也可以略過此手動組態,並使用附錄 B:外掛程式安裝和組態中涵蓋的適用於 AWS 的 WordPress 外掛程式,這是設定 CloudFront 以加速您的 WordPress 網站的最簡單方法。

表 1:CloudFront 行為的組態屬性摘要

屬性 靜態 動態 (管理) 動態 (前端)
路徑 (行為)

wp-content/*

wp-includes/*

wp-admin/*

wp-login.php

預設 (*)
通訊協定 HTTP 和 HTTPS 重新引導至 HTTPS HTTP 和 HTTPS
HTTP 方法 GET、HEAD ALL ALL
HTTP 標頭 NONE ALL

Host

CloudFront-Forwarded-Proto

CloudFront-Is-Mobile-Viewer

CloudFront-Is-Tablet-Viewer

CloudFront-Is-Desktop-Viewer

Cookie NONE ALL

comment_*

wordpress_*

wp-settings-*

查詢字串 是 (失效)

對於預設行為,AWS 建議使用以下組態:

  • 允許來源通訊協定政策到比對檢視器,以便如果檢視者使用 HTTPS 連線到 CloudFront,CloudFront 也會使用 HTTPS 連線到您的來源,實現端到端加密。請注意,這需要您在負載平衡器上安裝受信任的 SSL 憑證。如需詳細資訊,請參閱 CloudFront 與自訂原始伺服器之間的通訊需要 HTTPS

  • 允許所有 HTTP 方法,因為網站的動態部分同時需要 GET 和 POST 請求 (例如,為支援註解提交表單的 POST)。

  • 只轉送會隨著 WordPress 輸出變更的 Cookie;例如 >wordpress_*wp-settings-*comment_*。如果您安裝依賴於不在清單中的其他 cookie 的任何外掛程式,則必須延伸該清單。

  • 僅轉送會影響 WordPress 輸出的 HTTP 標頭,例如 HostCloudFront-Forwarded-ProtoCloudFront-is-Desktop-ViewerCloudFront-is-Mobile-Viewer、和 CloudFront-is-Tablet-Viewer

    • Host 允許將多個 WordPress 網站託管在相同來源。

    • CloudFront-Forwarded-Proto 允許快取不同版本的頁面,取決於它們是透過 HTTP 還是 HTTPS 存取。

    • CloudFront-is-Desktop-ViewerCloudFront-is-Mobile-ViewerCloudFront-is-Tablet-Viewer 允許您根據最終使用者的裝置類型自訂佈景主題的輸出。

  • 根據所有查詢字串的值將其轉送到快取,因為 WordPress 依賴於這些字串,它們也可以用來使快取的物件失效。

如果您希望使用自訂網域名稱 (即不是 *.cloudfront.net) 為您的網站提供服務,請在「分佈設定」中的備用網域名稱下輸入適當的 URI。在此情況下,您還需要您的自訂網域名稱的 SSL 憑證。您可以透過 AWS Certificate Manager 請求 SSL 憑證,並根據 CloudFront 分佈對其進行設定。

現在,為動態內容建立另外兩個快取行為:一個用於登入頁面 (路徑模式:wp-login.php),另一個用於管理儀表板 (路徑模式:wp-admin/*)。這兩種行為具有完全相同的設定,如下所示:

  • 強制執行僅限 HTTPS 的檢視器通訊協定政策。

  • 允許所有 HTTP 方法。

  • 根據所有 HTTP 標頭快取。

  • 轉送所有 cookie。

  • 根據所有查詢字串轉送和快取。

此組態背後的原因是,網站的此區段為高度個人化,且通常只有一些使用者,因此快取效率不是主要的考量。重點是保持組態簡單,以透過將所有 cookie 和標頭傳遞至來源,以確保與任何已安裝外掛程式的最大相容性。

附錄 B 中涵蓋的 AWS for WordPress 外掛程式會自動建立符合前述組態的 CloudFront 分佈。

預設情況下,WordPress 會將所有內容存放在 Web 伺服器本機,這是用於單一伺服器部署的區塊儲存 (Amazon EBS),和用於彈性部署的檔案儲存 (Amazon EFS)。除了降低儲存和資料傳輸成本,將靜態資產移至 Amazon S3 提供可擴展性、資料可用性、安全性和效能。有數個外掛程式可讓您輕鬆將靜態內容移動到 Amazon S3;其中一個是 W3 總快取,也涵蓋在附錄 B:外掛程式安裝和組態中。