Adobe Managed Services (AMS)基本文件布局
探索AMS标准配置文件集以及在Adobe Experience Manager中实施此配置标准背后的想法。
描述 description
环境
Adobe Experience Manager (AEM)
问题/症状
本文档介绍AMS标准配置文件集以及此配置标准背后的思想。
解决方法 resolution
默认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
/var/log/httpd
/usr/lib64/httpd/modules
/run/httpd
当遵循并遵循安装设计/结构时,您将获得以下好处:
- 更容易支持可预测的布局
- 以前在Enterprise Linux HTTPD安装中工作过的人都会自动熟悉
- 允许修补完全受操作系统支持的周期,不会出现任何冲突或手动调整
- 避免错误标记的文件上下文的SELinux违规
注释:
Adobe Managed Services服务器映像通常具有小型操作系统根驱动器。 数据放入单独的卷中,该卷通常装载在/mnt中。
然后使用卷,而不是下列默认目录的默认值:
文档根
- 默认:
/var/www/html - AMS:
/mnt/var/www/html
日志目录
- 默认:
/var/log/httpd - AMS:
/mnt/var/log/httpd
请记住,旧目录和新目录将映射回原始装载点,以消除混淆。 使用单独卷并不重要,但值得注意。
AMS加载项
AMS将添加到Apache Web Server的基本安装中。
文档根
AMS默认文档根:
- 作者:
/mnt/var/www/author/ - 发布:
/mnt/var/www/html/ - 全面捕获和运行状况检查维护:
/mnt/var/www/default/
暂存和启用的VirtualHost目录
以下目录允许您构建具有暂存区的配置文件,以便您可以处理文件并仅在文件准备就绪时启用它们。
/etc/httpd/conf.d/available_vhosts/- 此文件夹承载您所有名为
<的>虚拟主机/.vhost文件。
- 此文件夹承载您所有名为
/etc/httpd/conf.d/enabled_vhosts/- 当您准备好使用
.vhost文件夹中的available_vhosts文件时,请使用相对路径将它们链接到enabled_vhosts目录。
- 当您准备好使用
其他conf.d目录
还有其他在Apache配置中常见的部分。 我们创建了子目录,以便以简洁的方式分隔这些文件,而不是将所有文件都放在一个目录中。
-
重写目录 此目录可以包含您创建的所有
\*_rewrite.rules文件,这些文件包含用于Apache Web服务器 mod_rewrite 模块的典型RewriteRule语法。/etc/httpd/conf.d/rewrites/
-
白名单目录 此目录可以包含您创建的所有
\*_whitelist.rules文件,这些文件包含您的典型 IP允许 或 需要IP 语法,以使用Apache Web服务器访问控制。/etc/httpd/conf.d/whitelists/
-
变量目录 此目录可以包含您创建的所有
\*.vars文件,这些文件包含您可以在配置文件中使用的变量。/etc/httpd/conf.d/variables/
Dispatcher模块特定的配置目录
Apache Web Server极具可扩展性,当模块具有大量配置文件时,最佳做法是在安装基目录下创建自己的配置目录,而不是将默认目录乱七八糟。
将创建并遵循最佳实践。
模块配置文件目录
/etc/httpd/conf.dispatcher.d/
暂存和启用的场目录
以下目录允许您构建具有暂存区的配置文件,以便您可以处理文件并仅在文件就绪时启用它们。
/etc/httpd/conf.dispatcher.d/available_farms/- 此文件夹承载您所有名为
/myfarm {的*_farm.any文件。
- 此文件夹承载您所有名为
/etc/httpd/conf.dispatcher.d/enabled_farms/- 当您准备好使用
available_farms文件夹中的场文件时,请使用相对路径将它们与enabled_farms目录建立符号链接。
- 当您准备好使用
其他conf.dispatcher.d目录
还有一些片段是Dispatcher场文件配置的子部分,并且创建了子目录以允许采用简洁的方式分隔这些文件,并且不会将所有文件放在一个目录中。
-
缓存目录 此目录包含您创建的所有
*_cache.any、*_invalidate.any文件,这些文件包含您希望模块如何处理来自AEM的缓存元素以及失效规则语法的规则。 此部分的其他详细信息位于此处。/etc/httpd/conf.dispatcher.d/cache/
-
客户端标头目录 此目录可以包含您创建的所有
*_clientheaders.any文件,这些文件包含您希望在收到请求时传递到AEM的客户端标头列表。 有关此节的更多详细信息位于此处。/etc/httpd/conf.dispatcher.d/clientheaders/
-
筛选目录 此目录可以包含您创建的所有
*_filters.any文件,这些文件包含要阻止或允许通过Dispatcher的流量到达AEM的所有筛选规则。/etc/httpd/conf.dispatcher.d/filters/
-
渲染目录 此目录可以包含您创建的所有
*_renders.any文件,这些文件包含Dispatcher从中使用内容的每个后端服务器的连接详细信息。/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
.vhost
.vhost
.vhost
.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
.any
.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
/var/log/httpd
/usr/lib64/httpd/modules
/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希望您扩展模块和配置,以便向扩展名为/etc/httpd/conf.d/的/etc/httpd/conf.modules.d/和.conf 目录添加新文件。
作为将Dispatcher模块添加到Apache时的完美示例,您将在.so中创建模块/etc/httpd/modules/文件,然后通过在/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>
您会再次注意到我们添加了文件和模块,但没有更改任何原始文件。 这样可以提供所需的功能,并防止缺少所需的修补程序修复,以及与软件包的每次升级保持最高级别的兼容性。