AEM as a Cloud Service 中的 CDN

上次更新: 2023-11-02
  • 主题:
  • Dispatcher
    查看有关此主题的更多信息

AEM as a 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以与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代理服务器的位置,而不是实际客户端的位置。 因此,对于客户管理的CDN,地理位置标头应由客户CDN管理。

国家/地区代码的值是所描述的Alpha2代码 此处.

大陆代码的值为:

  • AF非洲
  • 南极洲
  • 作为亚洲
  • 欧盟欧洲
  • NA北美洲
  • OC大洋洲
  • 南美洲南美洲

此信息对于用例可能很有用,例如根据请求的来源(国家/地区)重定向到不同的url。 对于依赖于地理信息的缓存响应,请使用Vary标头。 例如,重定向到特定国家/地区的登陆页面应始终包含 Vary: x-aem-client-country. 如果需要,您可以使用 Cache-Control: private 以防止缓存。 另请参阅 缓存.

在此页面上