当存在具有单独缓存文件夹的场时如何刷新调度程序缓存

了解当存在具有单独缓存文件夹的场时如何刷新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
  1. 为每个AEM发布实例打开 http://aem-host:port/miscadmin

  2. 浏览到 复制>  Publish上的代理。

  3. 单击 编辑。

  4. 代理用户ID 下,输入您稍后创建的与此代理关联的用户的名称。 您可以使用站点主机名的命名约定。 例如:“flush-agent-www-geometrixx-com”。

  5. 选择 扩展 选项卡 .

  6. HTTP标头下, 添加另一个标头。 对于值,输入“Host: www.geometrixx.com”,其中应将“www.geometrixx.com”替换为站点的一个DNS主机。

  7. 单击 确定 进行保存。

  8. 转到 http://aem-host:port/useradmin 并从步骤4创建用户。

  9. 在用户的 权限 选项卡上,根据您希望允许代理刷新所引用站点的哪些路径,向用户授予这些路径的读取权限。 例如:/content/geometrixx、/content/dam、/etc、/libs、/apps、/var。

  10. 单击 保存

  11. 对每个发布实例上的所有其他站点重复步骤1 - 10。 您将为每个发布实例上的每个站点各创建一个刷新代理。

  12. 在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
    
  13. 现在,当您激活特定站点下的页面时,刷新请求仅定向到适用的刷新代理。

recommendation-more-help
3d58f420-19b5-47a0-a122-5c9dab55ec7f