AEM as a Cloud Service 中的 CDN

AEM as Cloud Service 會隨附內建的 CDN。 其主要用途,就是透過從瀏覽器附近的邊緣 CDN 節點傳遞可快取的內容,以便減少延遲的情形。它已完全受管理,並且已設定為提供最佳的 AEM 應用程式效能。

AEM管理的CDN可滿足大多數客戶的效能與安全性需求。 對於發佈層級,客戶可以選擇從他們自己必須管理的 CDN 指向它。依不同個案可允許此情況,以滿足特定先決條件為基礎,包括但不限於客戶和他們的 CDN 供應商有一個難以放棄的舊版整合。

AEM管理的CDN

請依照以下章節,使用Cloud Manager自助服務UI,使用AEM現成可用的CDN準備內容傳送:

  1. 管理 SSL 憑證
  2. 管理客戶網域名稱

限制流量

根據預設,對於AEM管理的CDN設定,所有公共流量都可前往發佈服務,無論是用於生產環境還是非生產(開發和中繼)環境。 您可以透過Cloud Manager使用者介面,針對特定環境限制發佈服務的流量(例如,依IP位址範圍限制分段)。

如需了解更多,請參閱管理 IP 允許清單

注意

AEM受管理的CDN只會處理來自允許IP的請求。 如果您將自己的CDN指向AEM管理的CDN,則請確定CDN的IP包含在允許清單中。

客戶CDN指向AEM管理的CDN

如果客戶必須使用其現有的CDN,他們可以管理該CDN,並將其指向AEM管理的CDN,前提是滿足以下條件:

  • 客戶必須擁有現有的CDN,且必須重新安裝CDN之後才能順利完成更換。
  • 客戶必須管理它。
  • 客戶必須能夠設定CDN以搭配AEMas a Cloud Service使用 — 請參閱下列設定指示。
  • 客戶必須有隨時待命的工程CDN專家,以備出現相關問題時使用。
  • 客戶在前往生產環境之前,必須先執行並成功通過負載測試。

設定指示:

  1. 將您的CDN指向AdobeCDN的輸入作為其原始網域。 例如, publish-p<PROGRAM_ID>-e<ENV-ID>.adobeaemcloud.com.

  2. 將SNI設為AdobeCDN的入口。

  3. 將Host標頭設定為原始網域。 例如:Host:publish-p<PROGRAM_ID>-e<ENV-ID>.adobeaemcloud.com

  4. 設定 X-Forwarded-Host 具有網域名稱的標頭,以便AEM可以判斷主機標頭。 例如:X-Forwarded-Host:example.com

  5. 設定 X-AEM-Edge-Key. 該值應來自Adobe。

    • 需要,以便AdobeCDN可驗證請求來源並傳遞 X-Forwarded-* 標頭到AEM應用程式。 例如,X-Forwarded-For 用於判斷使用者端IP。 因此,信任的呼叫者(即客戶管理的CDN)有責任確保 X-Forwarded-* 標題(請參閱下方的附註)。
    • 或者,您也可以在下列情況下封鎖對AdobeCDN入口的存取: X-AEM-Edge-Key 不存在。 如果您需要直接存取AdobeCDN的入口(將被封鎖),請通知Adobe。

請參閱 CDN廠商設定範例 一節,以瞭解來自主要CDN供應商的設定範例。

在接受即時流量之前,您應該向Adobe的客戶支援驗證端對端流量路由是否正常運作。

取得 X-AEM-Edge-Key,您可以測試要求是否正確路由,如下所示。

在Linux®中:

curl https://publish-p<PROGRAM_ID>-e<ENV-ID>.adobeaemcloud.com -H "X-Forwarded-Host: example.com" -H "X-AEM-Edge-Key: <PROVIDED_EDGE_KEY>"

在Windows中:

curl https://publish-p<PROGRAM_ID>-e<ENV-ID>.adobeaemcloud.com --header "X-Forwarded-Host: example.com" --header "X-AEM-Edge-Key: <PROVIDED_EDGE_KEY>"
注意

使用您自己的CDN時,您不需要在Cloud Manager中安裝網域和憑證。 AdobeCDN中的路由是使用預設網域來完成 publish-p<PROGRAM_ID>-e<ENV-ID>.adobeaemcloud.com 應在請求中傳送的內容 Host 標頭。 覆寫請求 Host 具有自訂網域名稱的標頭可能會導致AdobeCDN錯誤地路由請求。

注意

管理自己CDN的客戶應確保傳送至AEM CDN的標頭的完整性。 例如,建議客戶全部清除 X-Forwarded-* 標頭並將其設定為已知和控制值。 例如, X-Forwarded-For 應包含使用者端的IP位址,而 X-Forwarded-Host 應包含網站的主機。

注意

沙箱計畫環境不支援客戶提供的CDN。

只有在發生快取遺失時,才需要客戶CDN和AEM CDN之間的額外躍點。 使用本文所述的快取最佳化策略,新增客戶CDN應該只會帶來可忽略的延遲。

發佈層級支援此客戶CDN設定,但製作層級前不支援。

CDN廠商設定範例

以下提供幾個來自數家頂尖CDN廠商的設定範例。

Akamai

Akamai1 Akamai2

Amazon CloudFront

CloudFront1 CloudFront2

Cloudflare

Cloudflare1 Cloudflare2

地理位置標題

AEM管理的CDN會使用以下專案將標題新增至每個請求:

  • 國家/地區代碼: x-aem-client-country
  • 大陸代碼: x-aem-client-continent
注意

如果有客戶管理的CDN,這些標題會反映客戶CDN Proxy伺服器的位置,而非實際使用者端。 因此,對於客戶管理的CDN,地理位置標題應由客戶CDN管理。

國家/地區代碼的值為描述的Alpha-2代碼 此處.

大陸代碼的值為:

  • AF非洲
  • 南極洲
  • 亞洲
  • 歐盟歐洲
  • NA北美洲
  • OC大洋洲
  • 南美洲南部

此資訊可能適合用於使用案例,例如根據請求來源(國家/地區)重新導向至不同的URL。 使用Vary標頭可依地理資訊快取回應。 例如,重新導向至特定國家/地區的登陸頁面應一律包含 Vary: x-aem-client-country. 如有需要,您可以使用 Cache-Control: private 以防止快取。 另請參閱 快取.

本頁內容