本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
原始設定
使用 CloudFront 主控台建立或更新分佈時,您可以提供有關一或多個位置 (稱為原始伺服器) 的資訊,您可以在其中存放 Web 內容的原始版本。CloudFront 從您的原始伺服器原始伺服器取得 Web 內容,並透過全球網路邊緣伺服器將其提供給檢視器。
如需您可為分佈建立之原始伺服器數量的目前上限,或是有關請求更高配額的詳細資訊,請參閱 分佈的一般配額。
如果您想要刪除原始來源,則必須先編輯或刪除與該原始來源相關聯的快取行為。
重要
如果您要刪除原始來源,請確認之前由該原始來源提供的檔案,可在另一個原始來源中使用,而且您的快取行為現在正將這些檔案的請求,路由傳送到新的原始來源。
當您建立或更新分佈時,請為每個原始來源指定以下值。
主題
原始網域
原始網域是 CloudFront 將取得原始伺服器物件之資源的 DNS 網域名稱,例如 Amazon S3 儲存貯體或 HTTP 伺服器。例如:
-
Amazon S3 儲存貯體 –
amzn-s3-demo-bucket
.s3.us-west-2
.amazonaws.com注意
如果您最近建立了 S3 儲存貯體,CloudFront 分佈可能會傳回
HTTP 307 Temporary Redirect
回應 (最多需要 24 小時)。S3 儲存貯體名稱最多可能需要 24 小時才能傳播到所有 AWS 區域。傳播完成後,分佈會自動停止傳送這些重新引導回應;您不需要執行任何動作。如需詳細資訊,請參閱為何會收到來自 Amazon S3 的 HTTP 307 暫時重新引導回應?和暫時請求重新引導。 -
設定為網站的 Amazon S3 儲存貯體 –
amzn-s3-demo-bucket
.s3-website.us-west-2
.amazonaws.com -
MediaStore 容器 –
examplemediastore
.data.mediastore.us-west-1
.amazonaws.com -
MediaPackage 端點 –
examplemediapackage
.mediapackage.us-west-1
.amazonaws.com -
Amazon EC2 執行個體 –
ec2-203-0-113-25
.compute-1.amazonaws.com -
Elastic Load Balancing 負載平衡器 –
example-load-balancer-1234567890
.us-west-2
.elb.amazonaws.com -
您自己的 Web 伺服器 –
www.example.com
在 Origin domain (原始網域) 欄位中選擇網域名稱,或是輸入名稱。來自選擇加入區域的資源必須手動輸入。網域名稱不區分大小寫。您的原始網域必須具有可公開解析的 DNS 名稱,透過網際網路將請求從用戶端路由到目標。
如果您設定 CloudFront 透過 HTTPS 連線至原始伺服器,憑證中的其中一個網域名稱必須符合您為原始伺服器網域名稱指定的網域名稱。如果沒有網域名稱相符,CloudFront 會將 HTTP 狀態碼 502 (無效的閘道) 傳回給檢視器。如需詳細資訊,請參閱CloudFront 分佈和憑證中的網域名稱及CloudFront 與自訂原始伺服器間的 SSL/TLS 溝通失敗。
注意
如果您使用的原始伺服器請求政策將檢視器主機標頭轉送至原始伺服器,則原始伺服器必須使用符合檢視器主機標頭的憑證來回應。如需詳細資訊,請參閱新增 CloudFront 請求標頭。
如果您的原始伺服器是 Amazon S3 儲存貯體,請注意下列事項:
-
若儲存貯體已設為網站,請輸入您儲存貯體的 Amazon S3 靜態網站託管端點;請不要從 Origin domain (原始網域) 欄位中的清單選取儲存貯體名稱。靜態網站託管端點顯示在 Amazon S3 主控台中,在 Static website hosting (靜態網站託管) 下的 Properties (屬性) 頁面上。如需詳細資訊,請參閱使用設定為網站端點的 Amazon S3 儲存貯體。
-
如果您為儲存貯體配置了 Amazon S3 Transfer Acceleration,請不要為 Origin domain (原始網域)指定
s3-accelerate
端點。 -
如果您使用來自不同 AWS 帳戶的儲存貯體,而且儲存貯體未設定為網站,請使用下列格式輸入名稱:
bucket-name
.s3.region
.amazonaws.com如果您的儲存貯體位於美國區域,而且您希望 Amazon S3 將請求路由到維吉尼亞北部的一個設施,請使用以下格式:
bucket-name
.s3.us-east-1.amazonaws.com -
除非使用 CloudFront 原始存取控制來保護 Amazon S3 中的內容,否則這些檔案必須是可公開讀取。如需存取控制的詳細資訊,請參閱 限制對 Amazon S3 原始伺服器的存取。
重要
如果該原始伺服器是 Amazon S3 儲存貯體時,則儲存貯體名稱必須符合 DNS 命名請求。如需詳細資訊,請參閱 Amazon Simple Storage Service 使用者指南中的儲存貯體限制與局限。
當您變更原始伺服器的 Origin domain (原始網域) 的值時,CloudFront 會立即開始將變更複寫到 CloudFront 節點。在特定節點更新分佈組態之前,CloudFront 會繼續將請求轉送至先前原始伺服器。只要在該節點更新分佈組態,CloudFront 就會開始將請求轉送到新的原始伺服器。
變更原始伺服器不需要使用 CloudFront 將來自新原始伺服器的物件來重新填入邊緣快取。只要您的應用程式中的檢視器請求尚未變更,則 CloudFront 會繼續為已存在於邊緣快取中的物件提供服務,直到每個物件上的 TTL 到期,或者直到很少未被請求的物件被逐出。
通訊協定 (僅限自訂原始伺服器)
注意
這僅適用於自訂原始伺服器。
在從原始伺服器擷取物件時,您想要 CloudFront 使用的通訊協定政策。
請選擇下列其中一個值:
-
HTTP only (僅限 HTTP): CloudFront 只會使用 HTTP 來存取原始伺服器。
重要
當原始伺服器是 Amazon S3 靜態網站託管端點時,HTTP only (僅限 HTTP) 是預設設定,因為 Amazon S3 不支援 HTTPS 連線的靜態網站託管端點。CloudFront 主控台不支援變更 Amazon S3 靜態網站託管端點的此設定。
-
HTTPS only (僅限 HTTPS):CloudFront 僅使用 HTTPS 存取原始伺服器。
-
Match viewer (比對檢視器):CloudFront 使用 HTTP 或 HTTPS 與您的原始伺服器通訊,這取決於檢視器請求的通訊協定。請注意 CloudFront 僅會在檢視器使用 HTTP 和 HTTPS 協定發出請求時,快取物件一次。
重要
對於 CloudFront 轉送至此原始伺服器的 HTTPS 檢視器請求,原始伺服器上的 SSL/TLS 憑證中的網域名稱之一,必須符合您為 Origin domain (原始網域) 指定的網域名稱。否則,CloudFront 將使用 HTTP 狀態碼 502 (無效閘道) 來回應檢視器請求,而非傳回請求的物件。如需詳細資訊,請參閱與 CloudFront 搭配使用 SSL/TLS 憑證的要求。
HTTP 連接埠
注意
這僅適用於自訂原始伺服器。
(選擇性) 您可以指定自訂原始伺服器偵聽的 HTTP 連接埠。有效值包括連接埠 80、443,以及 1024 到 65535 之間。預設值為連接埠 80。
重要
當原始伺服器是 Amazon S3 靜態網站託管端點時,連線埠 80 是預設設定,因為 Amazon S3 僅支援連線埠 80 的靜態網站託管端點。CloudFront 主控台不支援變更 Amazon S3 靜態網站託管端點的此設定。
HTTPS 連接埠
注意
這僅適用於自訂原始伺服器。
(選擇性) 您可以指定自訂原始伺服器偵聽的 HTTPS 連接埠。有效值包括連接埠 80、443,以及 1024 到 65535 之間。預設值為連接埠 443。當 Protocol (通訊協定) 設定為 HTTP only (僅限 HTTP),您無法指定 HTTPS port (HTTPS 連接埠) 值。
最低來源 SSL 通訊協定
注意
這僅適用於自訂原始伺服器。
選擇 CloudFront 在建立與您原始伺服器的 HTTPS 連線時可使用的最低 TLS/SSL 通訊協定。由於較低的 TLS 通訊協定安全性較低,因此我們建議您選擇您來源支援的最新 TLS 通訊協定。當 Protocol (通訊協定) 設定為 HTTP only (僅限 HTTP),您無法指定 Minimum origin SSL protocol (最低來源 SSL 通訊協定) 值。
如果您使用 CloudFront API 來設定用於 CloudFront 的 TLS/SSL 通訊協定,則無法設定最低通訊協定。反之,您可指定所有 TLS/SSL 協定,以供 CloudFront 與您的原始伺服器搭配使用。如需詳細資訊,請參閱 Amazon CloudFront API 參考中的 OriginSslProtocols。
原始伺服器路徑
如果您希望 CloudFront 從原始伺服器的目錄中請求內容,請輸入以斜線 (/) 開頭的目錄路徑。CloudFront 會將目錄路徑附加到 Origin domain (原始網域) 的值中,例如:cf-origin.example.com/production/images
。請勿在路徑的尾端加上斜線 (/)。
例如,假設您已為您的分佈指定以下值:
-
Origin domain (原始網域) – 名為
amzn-s3-demo-bucket
的 Amazon S3 儲存貯體 -
Origin path (原始伺服器路徑) -
/production
-
Alternate domain names (CNAME) (備用網域名稱 (CNAME)) –
example.com
當使用者在瀏覽器中輸入 example.com/index.html
時,CloudFront 會針對 amzn-s3-demo-bucket/production/index.html
將請求傳送到 Amazon S3。
當使用者在瀏覽器中輸入 example.com/acme/index.html
時,CloudFront 會針對 amzn-s3-demo-bucket/production/acme/index.html
將請求傳送到 Amazon S3。
名稱
名稱是一個可唯一識別該分佈中此原始伺服器的字串。如果您除了預設快取行為外,還建立快取行為,則可以使用您在此處指定的名稱,以識別您所希望 CloudFront 將請求路由至其中的原始伺服器,前提是該請求需與該快取行為的路徑模式相符。
原始存取 (僅限 Amazon S3 原始伺服器)
注意
這僅適用於 Amazon S3 儲存貯體原始伺服器 (那些不使用 S3 靜態網站端點的原始伺服器)。
如果您想將對 Amazon S3 儲存貯體的存取限制為僅限特定 CloudFront 分佈,請選擇 Origin access control settings (recommended) (原始伺服器存取控制設定 (建議使用))。
如果 Amazon S3 儲存貯體可公開存取,請選擇 public (公有)。
如需詳細資訊,請參閱限制對 Amazon S3 原始伺服器的存取。
如需如何請求使用者只使用 CloudFront URL 來存取自訂原始伺服器上的物件的詳細資訊,請參閱限制存取自訂原始伺服器上的檔案。
新增自訂標頭
如果您希望 CloudFront 在將請求傳送到您的原始伺服器時新增自訂標頭,請指定標頭名稱和值。如需詳細資訊,請參閱將自訂標頭新增至原始伺服器請求。
如需可新增自訂標頭數量上限的目前上限、自訂標頭的名稱和值的最大長度,以及所有標頭名稱和值的總長度上限的詳細資訊,請參閱 配額。
啟用 Origin Shield
選擇 Yes (是) 以啟用 CloudFront Origin Shield。如需 Origin Shield 的詳細資訊,請參閱 使用 Amazon CloudFront Origin Shield。
連線嘗試
您可以設定 CloudFront 嘗試連線至原始伺服器的次數。您可以指定 1、2 或 3 做為嘗試次數。預設數字 (如果您未另外指定) 是 3。
將此設定與 Connection timeout (連線逾時) 搭配使用,可指定在嘗試連線至次要原始伺服器或將錯誤回應傳回給檢視器之前 CloudFront 等待的時間長度。依預設,CloudFront 會等待 30 秒 (嘗試 3 次,每次 10 秒),然後再嘗試連線至次要原始伺服器或傳回錯誤回應。您可以指定較少的嘗試次數、較短的連線逾時或兩者,以縮短此時間。
如果指定的連線嘗試次數失敗,CloudFront 會執行下列其中一項操作:
-
如果原始伺服器是原始伺服器群組的一部分,則 CloudFront 會嘗試連線至次要原始伺服器。如果對次要原始伺服器指定的連線嘗試次數失敗,則 CloudFront 會傳回錯誤回應給檢視器。
-
如果原始伺服器不是原始伺服器群組的一部分,則 CloudFront 會傳回錯誤回應給檢視器。
對於自訂原始伺服器 (包括使用靜態網站託管所配置的 Amazon S3 儲存貯體),此配置也會指定 CloudFront 嘗試從原始伺服器取得回應的次數。如需詳細資訊,請參閱回應逾時 (僅限自訂和 VPC 原始伺服器)。
連線逾時。
連線逾時是嘗試建立與原始伺服器的連線時 CloudFront 所等待的秒數。您可以指定介於 1 到 10 之間的秒數 (含)。預設逾時 (如果您另外未指定) 是 10 秒。
將此設定與 Connection attempts (連線嘗試次數) 搭配使用,可指定在嘗試連線至次要原始伺服器之前或將錯誤回應傳回給檢視器之前 CloudFront 等待的時間長短。依預設,CloudFront 會等待 30 秒 (嘗試 3 次,每次 10 秒),然後再嘗試連線至次要原始伺服器或傳回錯誤回應。您可以指定較少的嘗試次數、較短的連線逾時或兩者,以縮短此時間。
如果 CloudFront 未在指定的秒數內建立與原始伺服器的連線,CloudFront 會執行下列其中一項操作:
-
如果指定的 Connection attempts (連線嘗試次數)超過 1,CloudFront 會再次嘗試建立連線。CloudFront 最多可嘗試 3 次,由 Connection attempts (連線嘗試次數)的值決定。
-
如果所有連線嘗試失敗,且原始伺服器是原始伺服器群組的一部分,則 CloudFront 會嘗試連線至次要原始伺服器。如果對次要原始伺服器指定的連線嘗試次數失敗,則 CloudFront 會傳回錯誤回應給檢視器。
-
如果所有連線嘗試失敗,且原始伺服器不是原始伺服器群組的一部分,則 CloudFront 會傳回錯誤回應給檢視器。
回應逾時 (僅限自訂和 VPC 原始伺服器)
原始伺服器回應逾時,也稱為原始伺服器讀取逾時或原始伺服器請求逾時,適用於以下兩個值:
-
在將請求轉送到自訂原始伺服器之後,CloudFront 等待回應的時間 (以秒為單位)。
-
CloudFront 在收到來自原始伺服器的回應封包後,並在接收下一個封包前,等待的時間長短 (以秒為單位)
提示
如果因為檢視器遇到 HTTP 504 狀態碼錯誤,而您想要增加逾時值,請考慮在變更逾時值之前先探索其他方式來消除這些錯誤。請查看在 HTTP 504 狀態碼 (閘道逾時) 中的故障診斷建議。
CloudFront 行為取決於檢視器請求中的 HTTP 方法:
-
GET
與HEAD
請求 – 如果原始伺服器在回應逾時期間未回應或是停止回應,CloudFront 會結束連線。CloudFront 會根據 連線嘗試 的值再次嘗試連線。 -
DELETE
、OPTIONS
、PATCH
、PUT
及POST
請求 – 如果在讀取逾時期間原始伺服器未回應,CloudFront 將會結束連線,並且不再嘗試聯絡原始伺服器。用戶端可以視需要重新提交請求。
保持連線逾時 (僅限自訂和 VPC 原始伺服器)
保持連線逾時是在取得上次封包回應之後,CloudFront 嘗試與您的自訂原始伺服器保持連線的時間 (以秒為單位)。維護持久性連線可節省重新建立 TCP 連線所需的時間,並為後續請求執行另一個 TLS 交握。增加「保持活動逾時」有助於改善分佈的「每個連線請求指標」。
注意
為了讓 Keep-alive Timeout (保持連線逾時) 值有效,必須將原始伺服器設定為允許持久連線。
回應和持續作用逾時配額
注意
這僅適用於自訂原始伺服器。
如果您請求增加 的逾時 AWS 帳戶,請更新您的分佈原始伺服器,以便它們具有您想要的回應逾時和持續作用逾時值。您帳戶的配額增加不會自動更新您的原始伺服器。例如,如果您使用 Lambda@Edge 函數來設定 90 秒的持續作用逾時,您的原始伺服器必須已有 90 秒以上的持續作用逾時。否則,您的 Lambda@Edge 函數可能無法執行。
如需分佈配額的詳細資訊,包括如何請求提高配額,請參閱 分佈的一般配額。