装饰双螺旋

AEM 云服务上的托管 CDN 配置示例

当 AEM 作为云服务首次发布时(实际上直到上次 Adobe 峰会),配置 CDN 行为的唯一方法是使用 Apache 配置来更新cache-control逻辑并使用它来定义缓存行为。但这对于更高级的需求没有帮助,人们通常会在 Fastly 或 Akamai 或 Cloudflare 中的自带 CDN 布局中自行配置这些需求。
但从现在起,您可以在 AEM 云服务程序中利用一组新的托管 CDN 功能,这对于如何简化混合 AEM 云服务和 AEM Edge Delivery(现称为“ AEM Live ”)设置具有重大意义。

该视频为您提供了概述,下面我将介绍一些配置示例。

你需要什么

这些示例假设您在付费订阅中将 AEM 作为云服务运行。不幸的是,这些示例不能与沙盒一起使用(令我非常懊恼),因为 AEMaaCS 沙盒实例都共享许多配置,包括 CDN 配置。因此,如果没有付费和许可的 AEM 作为云服务安装,您将无法测试自定义主机名、自定义 SSL 证书和自定义 CDN 配置。

接下来,为了执行下面提到的重定向功能,您需要加入早期采用者计划,并在您的 AEM 程序上启用此功能,如此处所述

设置配置管道

首先要做的是在 AEM 项目中设置配置。

在项目根目录中创建一个名为/config的配置目录,并在该目录中放置一个名为cdn.yaml的文件。(该管道也可以拾取其他配置,很快将包括难以捉摸的LogForwarding管道。)请参阅此文档以了解更多。

您可以将管道设置为仅与 Dev 一起使用,或者为 DEV、STG 和 PROD 设置单独的配置管道。测试配置的唯一方法是通过这些管道运行它们,因此您肯定希望将其与全栈管道分开。

幸运的是,配置管道每次只需运行 1-2 分钟,因此迭代基本上是无痛的。

需要解决的一组示例问题

作为此类配置要解决的问题的一个例子,假设您有一个包含一些元素的设置,如下图所示:

即,您有:

接下来,让我们来讨论一下您可以采用的一些配置。

如何根据路径重定向到不同的后端

假设您有这样的映射:

以下是如何在托管 CDN 映射中进行配置。首先,配置假定所有流量的默认方向都是到您的 AEMaCS Dispatcher/Publish 堆栈。没有办法明确地说“某某流量会流向 AEMaCS”,你只能说哪些流量不会流向 AEMaCS。
因此,对于这个例子:

来源选择器:
规则:
 - 名称:支持
何时:{ reqProperty:路径,例如:/blog* }
行动:
类型:selectOrigin
来源名称:KRUSTY-WORDPRESS-BLOG
 - 名称:edge-delivery-site1
什么时候:
全部:
 - reqProperty:路径
喜欢: /*
 - reqProperty:路径
doesNotMatch:/content/dam*
 - reqProperty:路径
doesNotMatch:/content/test-site*
 - reqProperty:路径
doesNotMatch:/systemready*
 - reqProperty:域
doesNotMatch:作者*
行动:
类型:selectOrigin
原点名称:edge-delivery-site1
起源:
 - 名称:KRUSTY-WORDPRESS-SITE
域名:whyamiusingthisplatform.com
 forwardHost: false
 - 名称:edge-delivery-site1
域名:main--projectname--siteowner.aem.live
 forwardHost: false

请注意以上内容: 我们添加了一些属性以确保/systemready/content/test-site*传递给 AEMaCS。在这种情况下,即使您仅将 AEM 实例用作 DAM,OOTB 功能测试也需要通过 AEM,并且除非它们能够到达 AEM,否则您的管道将会失败。

如何进行基于国家/地区的地理重定向

要进行基于国家/地区的地理重定向,您可以使用 CDN 中免费提供的clientCountry属性作为重定向的基础。
您的配置可能如下所示:

数据:
实验重定向:
规则:
 ## 按地理位置重定向主页
- 名称:homepage-redirect-us
什么时候:
全部:
 - reqProperty:客户国家/地区
- 在:
 - 我们
- 加州
- 英国
- 红外线
- { reqProperty: 路径,等于:“/” }
行动:
类型:重定向
位置:https://mycoolsite/en/home

如何实现客户端重定向逻辑

假设在请求到达 Edge Delivery 站点之前,您需要对其进行一些基本重定向。例如,假设您的旧网站使用基于语言环境的目录结构(如en_uken_sgen_us等),并且您已转向基于语言的扁平模型(即仅/en/home )。另外,假设你使用 .html在所有页面的末尾,但在 Edge Delivery 上则不需要。
以下重定向逻辑将接受来自/en_us/home.html的任何页面请求并将其重定向到/en/home

## 通过 GEO + STRIP *.HTML 进行区域重定向
- 名称:重定向-en
何时:{ reqProperty:路径,例如:“/en_*” }
行动:
类型:重定向
状态:302
地点:
 reqProperty:路径
转换:
 - 操作:替换
匹配:'^/en_(..)(.*).html*$'
替换:'/en\2' 

希望这有帮助!

关于作者

泰德·里夫斯

Arbory Digital 首席架构师

Tad 自 2010 年以来一直从事 Adobe 产品工作,在网站基础设施方面拥有丰富的经验。从 1996 年开始,他几乎涉足过网站交付领域的所有领域,从解决方案架构到产品管理,拥有超过二十年的经验。他很高兴 Arbory 能给他机会提供诚实有效的解决方案,即使这意味着挑战现行的销售观点。不工作时,泰德喜欢和妻子及三个孩子一起骑山地自行车和探索大自然。

在 Linkedin 上联系 Tad

让您的 AEM 世界更加清晰:相关 Arbory Digital 播客剧集

单片 CMS、可组合 CMS 和微服务 CMS - 哪种工具适合这项工作?
整体式架构都是坏的吗?基于整体式、可组合式和微服务的 CMS 之间有什么区别?
让 AEM 和 Edge Delivery 速度飞快 - StreamX 联合创始人访谈
如何解决任何现代 CMS(尤其是 AEM 或 Edge Delivery)中持续存在的缓存新鲜度和后端系统延迟问题?在本集中,我们与Dynamic Solutions的首席技术官兼StreamX的联合创始人 Michał Cukierman 进行了交谈。StreamX 是一个数字体验网格,可以显著且可靠地加速构成现代 CMS 部署的众多组成系统的复杂动态内容请求。
Adobe 峰会 2024:AEM 架构颠覆
毫不夸张地说,如果您在过去几个月中没有花费大量精力重新考虑您的整个站点交付堆栈,那么您将会想要这样做。所以请 - 现在停止阅读,戴上耳机,边听播客边走走,想想它会如何影响您的环境!