文件布局基本信息

本文档将说明 AMS 标准配置文件集以及该配置标准背后的思考

🏠目录

🔙上一页 “调度程序”是什么

默认 Enterprise Linux 文件夹结构

在 AMS 中,基础安装使用 Enterprise Linux 作为基本操作系统。安装 Apache Webserver 时,会提供一个默认的安装文件集。以下是通过安装 yum 存储库提供的基本 RPM 来安装的默认文件

/etc/httpd/ 
├── conf 
│   ├── httpd.conf 
│   └── magic 
├── conf.d 
│   ├── autoindex.conf 
│   ├── README 
│   ├── userdir.conf 
│   └── welcome.conf 
├── conf.modules.d 
│   ├── 00-base.conf 
│   ├── 00-dav.conf 
│   ├── 00-lua.conf 
│   ├── 00-mpm.conf 
│   ├── 00-proxy.conf 
│   ├── 00-systemd.conf 
│   └── 01-cgi.conf 
├── logs -> ../../var/log/httpd 
├── modules -> ../../usr/lib64/httpd/modules 
└── run -> /run/httpd

遵守和维护安装设计/结构会使我们获得以下益处:

  • 更容易支持可预测的布局
  • 过去曾从事 Enterprise Linux HTTPD 安装工作的任何人员都会非常熟悉
  • 允许操作系统完全支持的修补周期,而没有任何冲突或手动调整
  • 避免 SELinux 违反错误标记的文件上下文
注意:

Adobe Managed Services 服务器映像具有的操作系统根驱动器通常较小。我们将数据放置在通常在 /mnt 中装载的单独卷中

然后我们对以下默认目录使用该卷,而不是默认的卷

DocumentRoot

  • 默认:/var/www/html
  • AMS:/mnt/var/www/html

日志目录

  • 默认:/var/log/httpd
  • AMS:/mnt/var/log/httpd

请记住,旧目录和新目录都将映射回原始装载点,以免造成混淆。

并非必须使用单独的卷,但可以考虑这样做

AMS 附加组件

用于 Apache Web 服务器基本安装的 AMS 附加组件。

文档根

AMS 默认文档根:

  • 作者:
    • /mnt/var/www/author
  • 发布:
    • /mnt/var/www/html/
  • 全方位的运行状况检查维护
    • /mnt/var/www/default/

暂存和已启用的 VirtualHost 目录

以下目录允许您构建具有暂存区域的配置文件,可以在该暂存区域处理文件,并且只有在准备就绪时才启用该暂存区域。
  • /etc/httpd/conf.d/available_vhosts/
    • 此文件夹将托管您所有命名为 .vhost 的 <VirtualHost /> 文件。
  • /etc/httpd/conf.d/enabled_vhosts/
    • 当您准备好使用 available_vhosts 文件夹中的 .vhost 文件时,使用相对路径将其符号链接到 enabled_vhosts 目录

其他 conf.d 目录

Apache 配置中还有一些常见的附加部分,我们创建了子目录,以一种清晰的方式分隔这些文件,而不是将所有文件都放在一个目录中

重写目录

此目录可以包含您创建的所有 *_rewrite.rules 文件,其中包含使用 Apache Web 服务器 mod_rewrite 模块的典型 RewriteRule 语法

  • /etc/httpd/conf.d/rewrites/

白名单目录

此目录可以包含您创建的所有 *_whitelist.rules 文件,其中包含使用 Apache Web 服务器访问控制的典型 IP AllowRequire IP 语法。

  • /etc/httpd/conf.d/whitelists/

变量目录

此目录可以包含您创建的所有 *.vars 文件,其中中包含可以在您的配置文件中使用的变量

  • /etc/httpd/conf.d/variables/

调度程序模块特定配置目录

Apache Web 服务器具有很好的可扩展性,当一个模块具有许多配置文件时,最佳实践是在安装基目录下创建自己的配置目录,而不要弄乱默认目录。

我们遵循最佳实践,创建自己的目录

模块配置文件目录

  • /etc/httpd/conf.dispatcher.d/

暂存和已启用的场目录

以下目录允许您构建具有暂存区域的配置文件,可以在该暂存区域处理文件,并且只有在准备就绪时才启用该暂存区域。
  • /etc/httpd/conf.dispatcher.d/available_farms/
    • 此文件夹将托管您所有命名为 *_farm.any/myfarm { 文件。
  • /etc/httpd/conf.dispatcher.d/enabled_farms/
    • 当您准备好使用 available_farms 文件夹中的场文件时,使用相对路径将其符号链接到 enabled_farms 目录

其他 conf.dispatcher.d 目录

还有一些附加部分是调度程序场文件配置的子部分,我们创建了子目录,以以一种清晰的方式分离这些文件,而不是将所有文件都放在一个目录中

缓存目录

此目录包含您创建的所有 *_cache.any, *_invalidate.any 文件,其中包含需要模块如何处理来自 AEM 的缓存元素的规则以及失效规则语法。请在此处查看有关该部分的详细信息。

  • /etc/httpd/conf.dispatcher.d/cache/

客户端标头目录

此目录可以包含您创建的所有 *_clientheaders.any 文件,其中包含出现请求时,您希望传递给 AEM 的客户端标头列表。请在此处查看有关该部分的详细信息。

  • /etc/httpd/conf.dispatcher.d/clientheaders/

过滤目录

此目录可以包含您创建的所有 *_filters.any 文件,其中包含阻止或允许流量通过调度程序传递到 AEM 的所有过滤规则。

  • /etc/httpd/conf.dispatcher.d/filters/

呈现目录

此目录可以包含您创建的所有 *_renders.any 文件,其中包含调度程序将使用其内容的每个后端服务器的连接详细信息。

  • /etc/httpd/conf.dispatcher.d/renders/

Vhosts 目录

此目录可以包含所有您创建的 *_vhosts.any 文件,其中包含将特定场与特定后端服务器相匹配的域名和路径列表。

  • /etc/httpd/conf.dispatcher.d/vhosts/

完整的文件夹结构

AMS 使用自定义文件扩展名来结构化每个文件,目的是避免出现命名空间问题/冲突和造成任何混乱。

以下是 AMS 默认部署中标准文件集示例:

/etc/httpd/ 
├── conf 
│   ├── httpd.conf 
│   └── magic 
├── conf.d 
│   ├── autoindex.conf 
│   ├── available_vhosts 
│   │   ├── 000_unhealthy_author.vhost 
│   │   ├── 000_unhealthy_publish.vhost 
│   │   ├── aem_author.vhost 
│   │   ├── aem_flush.vhost 
│   │   ├── aem_health.vhost 
│   │   ├── aem_lc.vhost 
│   │   └── aem_publish.vhost 
│   ├── dispatcher_vhost.conf 
│   ├── enabled_vhosts 
│   │   ├── aem_author.vhost -> ../available_vhosts/aem_author.vhost 
│   │   ├── aem_flush.vhost -> ../available_vhosts/aem_flush.vhost 
│   │   ├── aem_health.vhost -> ../available_vhosts/aem_health.vhost 
│   │   └── aem_publish.vhost -> ../available_vhosts/aem_publish.vhost 
│   ├── README 
│   ├── rewrites 
│   │   ├── base_rewrite.rules 
│   │   └── xforwarded_forcessl_rewrite.rules 
│   ├── userdir.conf 
│   ├── variables 
│   │   └── ams_default.vars 
│   ├── welcome.conf 
│   └── whitelists 
│       └── 000_base_whitelist.rules 
├── conf.dispatcher.d 
│   ├── available_farms 
│   │   ├── 000_ams_author_farm.any 
│   │   ├── 001_ams_lc_farm.any 
│   │   └── 999_ams_publish_farm.any 
│   ├── cache 
│   │   ├── ams_author_cache.any 
│   │   ├── ams_author_invalidate_allowed.any 
│   │   ├── ams_publish_cache.any 
│   │   └── ams_publish_invalidate_allowed.any 
│   ├── clientheaders 
│   │   ├── ams_author_clientheaders.any 
│   │   ├── ams_common_clientheaders.any 
│   │   ├── ams_lc_clientheaders.any 
│   │   └── ams_publish_clientheaders.any 
│   ├── dispatcher.any 
│   ├── enabled_farms 
│   │   ├── 000_ams_author_farm.any -> ../available_farms/000_ams_author_farm.any 
│   │   └── 999_ams_publish_farm.any -> ../available_farms/999_ams_publish_farm.any 
│   ├── filters 
│   │   ├── ams_author_filters.any 
│   │   ├── ams_lc_filters.any 
│   │   └── ams_publish_filters.any 
│   ├── renders 
│   │   ├── ams_author_renders.any 
│   │   ├── ams_lc_renders.any 
│   │   └── ams_publish_renders.any 
│   └── vhosts 
│       ├── ams_author_vhosts.any 
│       ├── ams_lc_vhosts.any 
│       └── ams_publish_vhosts.any 
├── conf.modules.d 
│   ├── 00-base.conf 
│   ├── 00-dav.conf 
│   ├── 00-lua.conf 
│   ├── 00-mpm.conf 
│   ├── 00-proxy.conf 
│   ├── 00-systemd.conf 
│   ├── 01-cgi.conf 
│   └── 02-dispatcher.conf 
├── logs -> ../../var/log/httpd 
├── modules -> ../../usr/lib64/httpd/modules 
└── run -> /run/httpd 

保持理想状态

Enterprise Linux 为 Apache Webserver 包 (httpd) 提供了修补周期。

您更改的安装的默认文件数量越少越好,因为如果有通过 RPM/Yum 命令应用的任何安全修复或配置改进,都不会应用于发生更改的文件。

而是会在原文件旁创建一个 .rpmnew 文件。也就是说,您将错过某些您可能需要的更改,而且还会在您的配置文件夹中创建更多垃圾文件。

Enterprise Linux 已经过正确设置,可以通过更好的方式来处理此用例。为您提供了一定区域,可在该区域扩展或覆盖其为您设置的默认文件。在 httpd 的基础安装中,您将看到 /etc/httpd/conf/httpd.conf 文件,其内部语法如下:

 

Include conf.modules.d/*.conf 
IncludeOptional conf.d/*.conf

目的在于,Apache 希望您扩展模块和配置,将文件扩展名为 .conf 的文件新增到 /etc/httpd/conf.d//etc/httpd/conf.modules.d/ 目录。

作为一个完整示例,当您向 Apache 添加调度程序模块时,会在 /etc/httpd/modules/ 中创建一个模块 .so 文件,然后通过在 /etc/httpd/conf.modules.d/02-dispatcher.conf 中添加含有相应内容的文件来包含它,以加载您的模块 .so 文件。

LoadModule dispatcher_module modules/mod_dispatcher.so

注意 我们不修改 Apache 提供的任何现有文件。只是将我们的文件添加到了它们要使用的目录中。

现在,我们在 /etc/httpd/conf.d/dispatcher_vhost.conf} 文件中使用我们的模块,该文件会初始化我们的模块并加载初始模块特定的配置文件

<IfModule disp_apache2.c> 
    DispatcherConfig conf.dispatcher.d/dispatcher.any 
    ...SNIP... 
</IfModule>

同样地,您会发现我们添加了文件和模块,但并未改变任何初始文件。这为我们提供了所需的功能,并保护我们免于丢失所需的修补程序,而且在每次升级时还可保持最高级别的兼容性。

下一页 ➡ 配置文件说明

Adobe 徽标

登录到您的帐户