当存在具有单独缓存文件夹的场时如何刷新调度程序缓存
了解当存在具有单独缓存文件夹的场时如何刷新Dispatcher缓存。 设置主机标头并配置 代理用户ID。
描述 description
环境
Experience Cloud Services
问题/症状
当存在具有单独缓存文件夹的场时如何刷新Dispatcher缓存。
解决方法 resolution
要为每个调度程序场设置一个Dispatcher刷新代理,请设置Host标头,并为 代理用户ID 配置一个对相关路径具有读取权限的用户。
在以下解决方案中,我们假定:
- 您使用的是Apache HTTP Server 2.2或更高版本
- 已配置多个虚拟主机
- 具有单独缓存的多个Dispatcher场
例如:
Apache https VirtualHost配置:
NameVirtualHost *:80
<VirtualHost *:80>
ServerName www.geometrixx.com
ServerAlias *.geometrixx.com
DocumentRoot /var/www/html/cache-www-geometrixx-com
...
</VirtualHost>
<VirtualHost *:80>
ServerName www.geometrixx-outdoors.com
ServerAlias *.geometrixx-outdoors.com
DocumentRoot <Global Doc root>/site2
Include <Configurations specific to site2>
</VirtualHost>
DocumentRoot /var/www/html/cache-www-geometrixx-outdoors-com
在Dispatcher配置中,您配置了多个场以按主机名(virtualhosts)处理不同的站点:
/virtualhosts
{
"*geometrixx.com*"
}
/renders
{
...
}
/cache {
/docroot "/var/www/html/cache-www-geometrixx-com"
设置多个刷新代理
如果您只有几个单独的调度程序场(五个或更少),则配置多个刷新代理是一种简单的解决方案。
ln -s /var/www/html/cache-www-geometrixx-com/libs /var/www/html/shared-cache
-
为每个AEM发布实例打开 http://aem-host:port/miscadmin。
-
浏览到 复制
>
Publish上的代理。 -
单击 编辑。
-
在 代理用户ID 下,输入您稍后创建的与此代理关联的用户的名称。 您可以使用站点主机名的命名约定。 例如:“flush-agent-www-geometrixx-com”。
-
选择 扩展 选项卡 .
-
在 HTTP标头下, 添加另一个标头。 对于值,输入“Host: www.geometrixx.com”,其中应将“www.geometrixx.com”替换为站点的一个DNS主机。
-
单击 确定 进行保存。
-
转到 http://aem-host:port/useradmin 并从步骤4创建用户。
-
在用户的 权限 选项卡上,根据您希望允许代理刷新所引用站点的哪些路径,向用户授予这些路径的读取权限。 例如:/content/geometrixx、/content/dam、/etc、/libs、/apps、/var。
-
单击 保存。
-
对每个发布实例上的所有其他站点重复步骤1 - 10。 您将为每个发布实例上的每个站点各创建一个刷新代理。
-
在Web服务器上,使用符号链接共享常用路径。 例如,可以将/content/dam、/etc.、/libs、/apps和/var的符号链接设置为公共缓存位置。 然后,将单独缓存/content和缓存根目录下的任何内容。 以下是/libs文件夹的示例命令
code language-none ln -s /var/www/html/cache-www-geometrixx-com/libs /var/www/html/shared-cache
-
现在,当您激活特定站点下的页面时,刷新请求仅定向到适用的刷新代理。