Azure 內容傳遞網路的運作方式

已完成

內容傳遞網路是伺服器的分散式網路,可以有效地將網頁內容傳遞給使用者。 Azure 內容傳遞網路以下列方式運作:

顯示 Azure 內容傳遞網路運作方式的圖表。

  1. 使用者 Alice 使用具有特殊網域名稱 (例如 <endpoint name>.azureedge.net) 的 URL 來要求​索取檔案 (也稱為資產)。 此網域名稱可以是端點主機名稱或自訂網域。 DNS 會將要求路由傳送到效能最佳的 POP 位置,這通常是地理位置最接近使用者的 POP。
  2. 如果 POP 中的邊緣伺服器在其快取中都沒有該檔案,則 POP 會從原始伺服器要求檔案。 原始伺服器可以是 Azure Web 應用程式、Azure 雲端服務、Azure 儲存體帳戶、Azure IaaS 虛擬機器,或任何可公開存取的 Web 伺服器。
  3. 原始伺服器會將檔案傳回至 POP 中的邊緣伺服器。
  4. POP 中的邊緣伺服器會快取檔案,並將檔案傳回給原始要求者 (Alice)。 在 HTTP 標頭指定的存留時間 (TTL) 到期之前,POP 中的邊緣伺服器都可快取該檔案。 如果原始伺服器未指定 TTL,預設 TTL 將是 7 天。
  5. 更多的使用者可以使用 Alice 所使用的相同 URL 來要求​索取相同的檔案,而且也可被導向到相同的 POP。
  6. 如果檔案的 TTL 尚未過期,邊緣伺服器便會直接從快取傳回檔案。 此程序會產生更快、更靈敏回應的使用者經驗。

Azure 內容傳遞網路原始伺服器

Azure 內容傳遞網路支援在 Azure IaaS 虛擬機器、Azure Web 應用程式和無伺服器應用程式上執行的 Web 伺服器作為原始伺服器。 當您將您的網站連線到 Azure 內容傳遞網路並傳播檔案時,您最終會在 Azure 內容傳遞網路中獲得相同的檔案結構。

建立內容傳遞網路需要在 Azure 中指定新的內容傳遞網路。 然後您可以設定指向來源伺服器或 Blob 儲存體帳戶的端點。 Azure 會要求為內容傳遞網路路徑和原始伺服器 URL 提供唯一的名稱。

Azure 中的無伺服器 Web 應用程式不需要任何伺服器的部署、設定或管理。 無伺服器 Web 應用程式可以包含下列可與 Azure 內容傳遞網路一起使用的元件:

  • Blob 儲存體:靜態 Web 檔案 (HTML、CSS 和 JavaScript) 會儲存在 Azure Blob 儲存體 (會實作靜態網站裝載) 中。 任何動態互動都是透過 JavaScript 呼叫後端 API。 不需要伺服器端程式碼來呈現網頁。
  • 函式應用程式:函式應用程式會使用事件驅動的模型,透過使用觸發程序 (事件) 來叫用函式 (程式碼片段)。 使用無伺服器應用程式時,觸發程序可能是 HTTP GET 要求。
  • API 管理:API 管理元件會提供一個 API 閘道,以用來發佈及管理用戶端函式所使用的 API。 閘道也有助於讓前端應用程式與 API 分離。 API 管理可以轉譯 URL、將轉換套用至前端和後端之間的資料要求,以及設定回應標頭。

Azure 內容傳遞網路會快取無伺服器 Web 應用程式內容,為使用者提供更低的延遲和更快的內容傳遞。 Azure 內容傳遞網路還可以為加密的 HTTPS 連線提供端點。

注意

建立端點時,您必須確定端點類型符合正確的原始來源。 例如,Azure 中的靜態網站需要一個使用儲存體帳戶設定為 custom origin 的端點,您可在其中建立一個與該帳戶相符的內容傳遞網路。

Azure 內容傳遞網路設定檔

Azure 內容傳遞網路設定檔是一或多個內容傳遞網路端點的容器。 每個內容傳遞網路端點都會指定一個定價層,並提供一個指向 POP 上快取內容的連結。 定價層可決定該內容傳遞網路設定檔可用的功能。 建立設定檔時,您可以指定要建立內容傳遞網路端點,也可以稍後再建立並新增端點。

Azure 內容傳遞網路快取行為

如果您透過 Azure 內容傳遞網路來發佈網站,則該網站上的檔案將會持續被快取,直到其 TTL 到期為止。 來自原始伺服器的 HTTP 回應中所包含的 Cache-Control 標頭決定 TTL 持續時間。

如果您未在檔案上設定 TTL,則 Azure 內容傳遞網路會設定預設值。 不過,如果您在 Azure 中設定了快取規則,則可覆寫此預設值。 以下是預設的 TTL 值:

  • 一般 Web 傳遞最佳化:7 天
  • 大型檔案最佳化:1 天
  • 媒體串流最佳化:1 年

在正常的作業中,Azure 內容傳遞網路邊緣節點會持續提供資產,直到該資產的 TTL 到期為止。 如果用戶端發出索取同一個資產的要求,則當該資產的 TTL 到期時,邊緣節點會重新連線到原始伺服器。 邊緣節點會擷取資產的另一個副本,並在此過程中設定新的 TTL。

因為快取的資源可能會過期或是過時 (相較於原始伺服器上的對應資源),任何快取機制都必須能夠控制內容重新整理的時間。 為了節省時間和頻寬消耗,每次存取資源時,不會將快取的資源與原始伺服器上的版本進行比較。 相反地,只要快取的資源被認為是全新的,該資源就會被假定為最新的版本並直接傳送到用戶端。

Azure 內容傳遞網路提供兩種快取檔案的機制。 不過,這些組態設定取決於您所選取的層級。 Microsoft 的 Azure 內容傳遞網路服務標準層中的快取規則是在端點層級設定,並提供三個組態選項。 其他的層級提供更多的組態選項,其包括下列各項:

  • 快取規則:快取規則可以是全域 (適用於來自指定端點的所有內容) 或自訂。 自訂快取規則會套用至特定的路徑和副檔名。
  • 查詢字串快取:查詢字串快取可讓您設定 Azure 內容傳遞網路如何回應查詢字串。 查詢字串快取對無法快取的檔案沒有任何作用。

對於 Microsoft 的 Azure 內容傳遞網路服務標準層,快取規則是以下三個選項:

  • 忽略查詢字串:這個選項是預設模式。 內容傳遞網路 POP 會在第一次要求時將要求和任何查詢字串直接傳遞到原始伺服器並快取資產。 對相同資產的新要求將忽略任何查詢字串,直到該資產的 TTL 到期為止。
  • 略過查詢字串的快取:來自用戶端的每一個查詢要求都會直接傳遞至原始伺服器而不進行快取。
  • 快取每個唯一的 URL:每次要求用戶端產生唯一的 URL 時,該 URL 都會被傳遞回到原始伺服器,且回應會根據自己的 TTL 被快取。 這種方法在每個要求都是唯一的 URL 時效率會不佳,因為快取命中率會變低。

檔案壓縮

Azure 內容傳遞網路可以透過在傳遞檔案之前壓縮檔案來改善效能。 然後,接收的瀏覽器會將檔案解壓縮。 如果您對原始伺服器上裝載的檔案啟用壓縮,Azure 內容傳遞網路會原封不動地傳遞壓縮的檔案。

Azure 內容傳遞網路會動態壓縮原始伺服器上的未壓縮檔案 (如果檔案是可以被壓縮的類型的話)。 Azure 內容傳遞網路接著會將壓縮的檔案儲存在 POP 上。 此程序可以改善用戶端體驗和網站效能。

地區篩選

透過地區篩選,您可以根據國碼 (地區碼) 來允許或封鎖特定國家或地區的內容。 在 Microsoft 的 Azure 內容傳遞網路服務標準層中,您只能允許或封鎖整個網站。 使用 Verizon 和 Akamai 層,您還能設定有關目錄路徑的限制。 如需詳細資訊,請參閱本課程模組摘要單元中的資源清單。

若要設定地區篩選,請完成下列步驟。

  1. 在個別端點的屬性中,選取 [地區篩選]
  2. 在 [地區篩選] 窗格上,選取 [允許] 或 [封鎖]
  3. 在 [國碼 (地區碼)] 清單中,選取您想要允許或封鎖的國家或地區。

[允許] 設定比 [封鎖] 設定更嚴格。 [允許] 僅供所選國家或地區存取。 [封鎖] 可允許來自除被封鎖的國家或地區之外的所有國家和地區的存取。