將自訂標頭新增至原始伺服器請求 - Amazon CloudFront

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

將自訂標頭新增至原始伺服器請求

您可以將 CloudFront 配置為將自訂標頭新增到傳送給您原始伺服器的請求。您可以使用自訂標頭,從原始伺服器傳送和收集一般瀏覽者請求無法取得的資訊。您甚至可以自訂每個原始伺服器的標頭。CloudFront 支援自訂原始伺服器和 Amazon S3 原始伺服器的自訂標頭。

使用案例

您可以使用自訂標頭,例如下列範例:

識別來自 CloudFront 的請求

您可以識別原始伺服器從 CloudFront 收到的請求。如果您想知道使用者正繞過 CloudFront,還是您正使用多個 CDN,並且想知道來自每個 CDN 的請求的資訊,這會是很實用的方法。

注意

如果您使用的是 Amazon S3 原始伺服器,並且啟用 Amazon S3 伺服器存取記錄,則日誌不包含標頭資訊。

判斷哪些請求是來自特定分發

如果您將多個 CloudFront 分發配置為使用同一個原始伺服器,您可以在每個分發中新增不同的自訂標頭。然後,您可以使用來自原始伺服器的日誌,判斷哪些請求來自哪個 CloudFront 分發。

啟用跨來源資源分享 (CORS)

如果某些檢視器不支援跨原始伺服器資源分享 (CORS),您可以將 CloudFront 配置為一律將 Origin 標頭新增到傳送給您原始伺服器的請求。接著,您可以將原始伺服器設定為針對每個請求傳回 Access-Control-Allow-Origin 標頭。您也必須配置 CloudFront ,才能遵循 CORS 設定

控制內容的存取

您可以使用自訂標頭來控制內容的存取。您可以將原始伺服器配置為只有在包含 CloudFront 所新增的自訂標頭時才回應請求,藉此防止使用者繞過 CloudFront 並直接在原始伺服器上存取您的內容。如需詳細資訊,請參閱限制存取自訂原始伺服器上的檔案

設定 CloudFront 將自訂標頭新增至原始伺服器請求

若要將分佈設定為將自訂標頭新增到傳送給您原始伺服器的請求,請使用下列其中一種方法來更新原始伺服器設定:

  • CloudFront 主控台 – 當您建立或更新分佈時,請在新增自訂標頭設定中指定標頭名稱和值。如需詳細資訊,請參閱新增自訂標頭

  • CloudFront API – 針對您要為其新增自訂標頭的每個原始伺服器,在 Origin 內的 CustomHeaders 欄位中指定標頭名稱和值。如需詳細資訊,請參閱《Amazon CloudFront API 參考》中的 CreateDistributionUpdateDistribution

如果您指定的標頭名稱和值尚未出現在檢視器請求中,CloudFront 會將它們新增到原始伺服器請求中。如果存在標頭,則在將請求轉送到原始伺服器之前,CloudFront 將覆寫標頭值。

如需套用至原始伺服器自訂標頭的配額,請參閱 標頭的配額

CloudFront 無法新增到原始伺服器請求的自訂標頭

您無法將 CloudFront 配置為將任何以下標頭新增到傳送給您原始伺服器的請求:

  • Cache-Control

  • Connection

  • Content-Length

  • Cookie

  • Host

  • If-Match

  • If-Modified-Since

  • If-None-Match

  • If-Range

  • If-Unmodified-Since

  • Max-Forwards

  • Pragma

  • Proxy-Authenticate

  • Proxy-Authorization

  • Proxy-Connection

  • Range

  • Request-Range

  • TE

  • Trailer

  • Transfer-Encoding

  • Upgrade

  • Via

  • X-Amz- 做為開頭的標頭

  • X-Edge- 做為開頭的標頭

  • X-Real-Ip

設定 CloudFront 轉送 Authorization標頭

當 CloudFront 將檢視器請求轉送至您的原始伺服器時,CloudFront 預設會移除某些檢視器標頭,包括 Authorization 標頭。為了確保您的原始伺服器始終收到原始伺服器請求中的 Authorization 標頭,您有以下選項:

  • 使用快取政策將 Authorization 標頭新增至快取金鑰。快取金鑰中的所有標頭都會自動包含在原始伺服器請求中。如需詳細資訊,請參閱使用政策控制快取金鑰

  • 使用將所有檢視器標頭轉寄至原始伺服器的原始伺服器請求政策。您無法在原始伺服器請求政策中個別轉寄 Authorization 標頭,但當您轉寄所有檢視器標頭時,CloudFront 會在檢視器請求中包含 Authorization 標頭。CloudFront 為此使用案例提供受管的原始伺服器請求政策,稱為 Managed-AllViewer。如需詳細資訊,請參閱使用受管原始伺服器請求政策