設定您的發 Lightsail 版本的快取 - Amazon Lightsail

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

設定您的發 Lightsail 版本的快取

快取行為可讓您設定 Amazon Lightsail 分發從來源快取或未快取的內容。例如,您可以指定快取原始伺服器中的個別目錄、檔案或檔案類型。您也可以指定轉送給原始伺服器的 HTML 方法和標頭。在本指南中,我們會為您介紹如何變更分發的快取行為。如需有關分發的詳細資訊,請參閱內容交付網路分發

內容

快取預設

快取預設會針對您在原始伺服器上託管的內容類型,自動設定分發的設定。例如,選擇 Best for static content (靜態內容最佳選擇) 預設,會使用最適合靜態網站的設定來自動設定您的分發。如果您的網站託管在 WordPress 執行個體上,請選擇「最適合 WordPress預設」,讓您的發佈自動設定為與您的 WordPress 網站搭配使用。

您可以針對分發選擇下列其中一個快取預設:

  • Best for static content (靜態內容最佳選擇) - 此預設會設定您的分發為快取所有內容。如果您在原始伺服器上託管靜態內容 (例如靜態 HTML 頁面),或託管不會針對造訪您網站的每位使用者變更的內容,則此預設非常適合。當您選擇此預設時,系統會快取分發中的所有內容。

  • Best for dynamic content (動態內容的最佳選擇) - 此預設會將您的分發設定為不快取,除了您在 Create a distribution (建立分發) 頁面的 Directory and file overrides (目錄和檔案覆寫) 區段中指定為 Cache (快取) 的內容以外。如需詳細資訊,請參閱本指南中的目錄和檔案覆寫。如果您在原始伺服器上託管動態內容,或託管可能會針對造訪您網站或 Web 應用程式的每位使用者變更的內容,則此預設非常適合。

  • 最適合 WordPress-此預設集可將您的發行版配置為緩存除了實例wp-includes/wp-content/目錄中的文件以外的 WordPress任何內容。如果您的來源是使用 Bitnami WordPress 認證和自動藍圖 (不包括多網站藍圖) 的執行個體,則此預設集是理想的選擇。如需有關此預設集的詳細資訊,請參閱最適合 WordPress快取預設集

    注意

    無法選取 Custom settings (自訂設定) 預設。如果您選擇某個預設,然後手動修改分發設定,則系統會自動為您選取該預設。

快取預設集只能在 Lightsail 主控台中指定。您無法使用 Lightsail API 和開發套件來指定它。 AWS CLI

最適合 WordPress緩存預設

當您選取使用「由 Bitnami WordPress 認證」和「自動化」藍圖做為發佈來源的執行個體時,Lightsail 會詢問您是否要將最佳 WordPress快取預設集套用至您的發佈。如果您應用當前,則會自動配置您的分發以最適合您的 WordPress 網站。您不需要套用其他分發設定。最適合 WordPress 預設緩存除了網站wp-includes/wp-content/目錄中的文件之外沒有任何內 WordPress容。它也會將分發設定為每天清除其快取 (快取壽命為 1 天),允許所有 HTTP 方法、僅轉送 Host 標頭,不轉送 Cookie 並轉送所有查詢字串。

重要

您必須在執行個體中編輯 WordPress 設定檔,才能讓您的 WordPress網站與您的發行版一起運作。如需詳細資訊,請參閱設定您的 WordPress執行個體以搭配您的發佈使用。

預設行為

預設行為會指定分發處理內容快取的方式。系統會根據您選取的快取預設自動為您指定分發的預設行為。如果您選取不同的預設行為,則快取預設會自動變更為 Custom settings (自訂設定)。

您可以為分發選擇以下其中一個預設行為:

  • 快取所有內容 - 這種行為會將分發設定為快取整個網站並將其作為靜態內容。如果您的原始伺服器託管的內容不會因檢視器而變更,或者您的網站不使用 Cookie、標頭或查詢字串來個人化內容,則此選項非常適合。

  • 不快取 - 這種行為會將您的分發設定為只快取您指定的原始伺服器檔案和資料夾路徑。如果您的網站或 Web 應用程式使用 Cookie、標頭和查詢字串為個別使用者個人化內容,則此選項非常適合。如果您選取此選項,您必須指定要快取的目錄和檔案路徑覆寫

目錄和檔案覆寫

目錄和檔案覆寫可用來覆寫您選取的預設行為,或在該行為中新增例外狀況。例如,如果您選擇快取所有內容,請使用覆寫來指定分發不該快取的目錄、檔案或檔案類型。或者,如果您選擇不快取,請使用覆寫來指定分發應該快取的目錄、檔案或檔案類型。

在該頁面的 Directory and file overrides (目錄和檔案覆寫) 區段中,您可以指定目錄或檔案的路徑,以進行快取或不快取。使用星號符號指定萬用字元目錄 (path/to/assets/*) 和檔案類型 (*.html*jpg*js)。目錄和檔案路徑區分大小寫。

以下是有關如何指定目錄和檔案覆寫的範例:

  • 指定下列項目,快取在 Lightsail 實體上執行之 Apache 網頁伺服器之文件根目錄中的所有檔案。

    var/www/html/
  • 指定下列項目,以僅快取 Apache Web 伺服器文件根目錄中的索引頁面。

    var/www/html/index.html
  • 指定下列項目,以僅快取 Apache Web 伺服器文件根目錄中的 。html 檔案。

    var/www/html/*.html
  • 指定下列項目,以僅快取 Apache Web 伺服器文件根目錄映像子目錄中的 .jpg、.png 和 .gif 檔案。

    var/www/html/images/*.jpg
    var/www/html/images/*.png
    var/www/html/images/*.gif

    指定下列項目,以僅快取 Apache Web 伺服器文件根目錄映像子目錄中的所有檔案。

    var/www/html/images/

進階快取設定

進階設定可用來指定分發中的內容快取壽命、允許的 HTTP 方法、HTTP 標頭轉送、Cookie 轉送和查詢字串轉送。您指定的進階設定僅適用於分發所快取的目錄和檔案,包括您指定為 Cache (快取) 的目錄和檔案覆寫。

您可以進行下列進階設定:

Cache lifespan (TTL) (快取壽命 (TTL))

在分發轉送另一個請求到原始伺服器,以判斷您的內容是否已更新之前,請控制您的內容在分發快取中停留的時間量。預設值為一天。縮短持續時間後,您可以更好地提供動態內容。增加持續時間會讓您的使用者取得更好的效能,因為檔案更有可能是直接從節點提供。增加持續時間也能減少原始伺服器的負載,因為分發提取內容的頻率減少。

注意

您指定的快取壽命值僅在原始伺服器不新增 HTTP 標頭至您的內容時才適用,例如不新增 Cache-Control max-ageCache-Control s-maxageExpires

Allowed HTTP methods (允許的 HTTP 方法)

控制分發處理及轉送至原始伺服器的 HTTP 方法。HTTP 方法表示想要在原始伺服器上執行的動作。例如,GET 方法會從您的原始伺服器擷取資料,而 PUT 方法會請求將封閉的實體存放在您的原始伺服器上。

您可以為分發選擇下列其中一個 HTTP 方法選項:

  • Allow GET, HEAD, OPTIONS, PUT, PATCH, POST, and DELETE methods (允許 GET、HEAD、OPTIONS、PUT、PATCH、POST 和 DELETE 方法)

  • Allow the GET, HEAD, and OPTIONS methods (允許 GET、HEAD 和 OPTIONS 方法)

  • Allow the GET and HEAD methods (允許 GET 和 HEAD 方法)

您的分發一律會快取針對 GET 與 HEAD 請求的回應。如果您選擇允許這些請求,您的分發也會快取針對 OPTIONS 請求的回應。您的分發不會快取針對任何其他 HTTP 方法的回應。

重要

如果您將分發設定為允許支援的所有 HTTP 方法,則您必須將原始伺服器執行個體設定為處理所有方法。例如,如果因為想要使用 POST,而將您的分發設定為允許這些方法,則您必須將原始伺服器設定為以適當方式處理 DELETE 請求,讓檢視器無法刪除您不希望其刪除的資源。如需詳細資訊,請搜尋您的網站或 Web 應用程式的文件。

HTTP header forwarding (HTTP 標頭轉送)

控制分發是否根據指定標頭的值來快取內容,如果是的話,是根據哪些標頭的值。HTTP 標頭攜帶有關用戶端瀏覽器、請求的頁面、原始伺服器等的資訊。例如,Accept-Language 標頭會傳送用戶端的語言 (例如針對英文是 en-US),以便原始伺服器能以用戶端語言的內容 (如果可用) 來回應。

您可以為分發選擇下列其中一個 HTTP 標頭選項:

  • Forward no headers (不轉送標頭)

  • Forward only the headers I specify (只轉送我指定的標頭)

如果您選取 Forward no headers (不轉送標頭),您的分發不會根據標頭值快取內容。無論您選取的選項為何,您的分發皆會轉送特定標頭至原始伺服器,並根據您轉送的標頭來採取特定動作。

Cookie forwarding (Cookie 轉送)

控制您的分發是否將 Cookie 轉送到原始伺服器,若要轉送,是哪些 Cookie 要轉送。Cookie 包含傳送至原始伺服器的一小段資料,例如有關訪客在您原始伺服器網頁上的動作的資訊,以及訪客提供的任何資訊,例如他們的姓名和興趣。

您可以為您的分發選擇下列其中一個 Cookie 轉送選項:

  • Don't forward cookies (請勿轉送 Cookie)

  • Forward all cookies (轉送所有 Cookie)

  • Forward cookies I specify (轉送我指定的 Cookie)

如果您選擇 Forward all cookies (轉送所有 Cookie),無論您的應用程式使用多少 Cookie,您的分發都會轉送所有 Cookie。如果您選擇 Forward cookies I specify (轉送我指定的 Cookie),然後在顯示的文字方塊中輸入您要分發轉送之 Cookie 的名稱。當您指定 Cookie 名稱時,可以指定以下萬用字元符號:

  • * 符合 Cookie 名稱中的 0 個或多個字元

  • ? 完全符合 Cookie 名稱中的一個字元

例如,假設檢視器針對某個物件的請求包含名稱為 userid_member-number 的 Cookie。其中每個使用者都有 member-number (userid_123userid_124userid_125 等) 的唯一值。您希望分發為每個成員快取單獨版本的內容。您可以透過將所有 Cookie 轉送到原始伺服器以達成此目標,但檢視器請求包含一些您不希望分發快取的 Cookie。您可以指定以下值作為 Cookie 名稱,這會導致分發將所有以 userid_ 開頭的 Cookie 轉送至您的原始伺服器:userid_*

Query string forwarding (查詢字串轉送)

控制您的分發是否將查詢字串轉送至原始伺服器,若要轉送,是哪些查詢字串要轉送。查詢字串是指派值給指定參數的 URL 的一部分。例如,https://example.com/over/there?name=ferret URL 包含 name=ferret 查詢字串。當伺服器收到該等頁面的請求時,它可能會執行一個程式,並將不變的 name=ferret 查詢字串傳遞至該程式。問號用作分隔符號,而非查詢字串的一部分。

您可以選擇讓分發不轉送查詢字串,或只轉送您指定的查詢字串。如果您的原始伺服器傳回相同版本的內容,而不考慮查詢字串參數的值,請選擇不轉送查詢字串。這會讓分發更有可能提供來自快取的請求,從而提高效能並降低原始伺服器的負載。如果您的原始伺服器根據一或多個查詢字串參數傳回不同版本的內容,請選擇只轉送您指定的查詢字串。

變更分發的快取行為

請完成下列程序來變更分發的預設快取行為。

  1. 登入主 Li ghtsail 台

  2. 在 Lightsail 首頁,選擇 Networking (聯網) 索引標籤。

  3. 選擇您要變更預設快取行為之分發的名稱。

  4. 選擇分發管理頁面上的 Cache (快取) 索引標籤。

  5. 在該頁面的 Configure caching (設定快取) 區段中,選擇分發的快取預設。如需詳細資訊,請參閱快取預設

  6. 選擇 Change default cache behavior (變更預設快取行為),以變更分發的預設行為。然後,為分發選擇預設行為。如需詳細資訊,請參閱預設行為

  7. 選擇 Add path (新增路徑),以將目錄和檔案覆寫新增至分發的快取行為中。如需詳細資訊,請參閱目錄和檔案覆寫

  8. 選擇顯示在您要為分發編輯的進階設定旁的鉛筆圖示。如需詳細資訊,請參閱進階快取設定

當您將變更儲存至分發組態時,您的分發會開始將變更傳播到所有節點。分發會根據之前的組態繼續從該位置提供內容,直到在節點中更新組態為止。在節點中更新組態後,分發便會立即根據新組態從該位置提供內容。

您的變更不會立即傳播到每個節點。傳輸完成時,發佈的狀態會從變更為「已啟InProgress用」。儘管您的分發傳播變更,但我們仍無法根據先前的組態或新組態來判斷指定節點是否提供內容。