Note
The Adobe Managed Services servers images typically have small Operating System root drives. We put our data in a separate volume which is typically mounted in /mnt
Then we use that volume instead of the defaults for the following default directories
DocumentRoot
- Default:
/var/www/html
- AMS:
/mnt/var/www/html
Log Directory
- Default:
/var/log/httpd
- AMS:
/mnt/var/log/httpd
Keep in mind that the old and new directories are mapped back to the original mount point to eliminate confusion.
Using a separate volume isn’t vital but it’s note worthy
AMS Add-ons
AMS adds on to the base install of Apache Web Server.
Document Roots
AMS Default document roots:
- Author:
/mnt/var/www/author/
- Publish:
/mnt/var/www/html/
- Catch-All and Health Check Maintenance
/mnt/var/www/default/
Staging and Enabled VirtualHost Directories
The following directories allow you to build out configuration files having a staging area that you can work on files and only enable then when they are ready.
/etc/httpd/conf.d/available_vhosts/
- This folder hosts all of your VirtualHost / files called
.vhost
- This folder hosts all of your VirtualHost / files called
/etc/httpd/conf.d/enabled_vhosts/
- When you’re ready to use the
.vhost
files, you have inside theavailable_vhosts
folder symlink them using a relative path into theenabled_vhosts
directory
- When you’re ready to use the
Additional conf.d
Directories
There are additional pieces that are common in Apache configurations and we created sub directories to allow for a clean way to separate those files and not have all the files in one directory
Rewrites Directory
This directory can contain all of the _rewrite.rules
files you create that contain your typical RewriteRulesyntax that engage Apache web servers mod_rewrite module
/etc/httpd/conf.d/rewrites/
Whitelists Directory
This directory can contain all of the _whitelist.rules
files you create that contain your typical IP Allow
or Require IP
syntax that engage Apache web servers access controls
/etc/httpd/conf.d/whitelists/
Variables Directory
This directory can contain all of the .vars
files you create that contain variables you can consume in your configuration files
/etc/httpd/conf.d/variables/
Dispatcher Module-specific Configuration Directory
Apache Web Server is very extensible and when a module has a lot of configuration files it’s best practice to create your own configuration directory under the install base directory instead of cluttering up the default one.
We follow the best practice and created our own
Module Configuration file directory
/etc/httpd/conf.dispatcher.d/
Staging and Enabled Farm
The following directories allow you to build out configuration files having a staging area that you can work on files and only enable then when they are ready.
/etc/httpd/conf.dispatcher.d/available_farms/
- This folder hosts all of your
/myfarm {
files called_farm.any
- This folder hosts all of your
/etc/httpd/conf.dispatcher.d/enabled_farms/
- When you’re ready to use the farm file, you have inside the available_farms folder symlink them using a relative path into the enabled_farms directory
Additional conf.dispatcher.d
Directories
There are additional pieces that are sub sections of the Dispatcher farm file configurations and we created sub directories to allow for a clean way to separate those files and not have a all the files in one directory
Cache Directory
This directory contains all of the _cache.any
, _invalidate.any
files you create that contain your rules on how you want the module to handle caching elements that come from AEM as well as invalidation rules syntax. More details on this section are here here
/etc/httpd/conf.dispatcher.d/cache/
Client Headers Directory
This directory can contain all of the _clientheaders.any
files you create that contain lists of Client Headers you want to pass through to AEM when a request comes in. More details on this section are here
/etc/httpd/conf.dispatcher.d/clientheaders/
Filters Directory
This directory can contain all of the _filters.any
files you create that contain all of your filter rules to block or allow traffic through the Dispatcher to reach AEM
/etc/httpd/conf.dispatcher.d/filters/
Renders Directory
This directory can contain all of the _renders.any
files you create that contain the connectivity details to each backend server that the dispatcher will consume content from
/etc/httpd/conf.dispatcher.d/renders/
Vhosts Directory
This directory can contain all of the _vhosts.any
files you create that contain a list of the domain names and paths to match to a particular farm to a particular back-end server
/etc/httpd/conf.dispatcher.d/vhosts/
Complete Folder Structure
AMS has structured each of the files with custom file extensions and with the intention to avoid namespace issues / conflicts and any confusion.
Here is an example of a standard fileset from an AMS default deployment:
/etc/httpd/
├── conf
│ ├── httpd.conf
│ └── magic
├── conf.d
│ ├── 000_init_ootb_vars.conf
│ ├── 001_init_ams_vars.conf
│ ├── README
│ ├── autoindex.conf
│ ├── available_vhosts
│ │ ├── 000_unhealthy_author.vhost
│ │ ├── 000_unhealthy_publish.vhost
│ │ ├── aem_author.vhost
│ │ ├── aem_flush.vhost
│ │ ├── aem_flush_author.vhost
│ │ ├── aem_health.vhost
│ │ ├── aem_publish.vhost
│ │ └── ams_lc.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 -> /etc/httpd/conf.d/available_vhosts/aem_health.vhost
│ │ └── aem_publish.vhost -> ../available_vhosts/aem_publish.vhost
│ ├── logformat.conf
│ ├── mimetypes3d.conf
│ ├── remoteip.conf
│ ├── rewrites
│ │ ├── base_rewrite.rules
│ │ └── xforwarded_forcessl_rewrite.rules
│ ├── security.conf
│ ├── userdir.conf
│ ├── variables
│ │ ├── ams_default.vars
│ │ └── ootb.vars
│ ├── welcome.conf
│ └── whitelists
│ └── 000_base_whitelist.rules
├── conf.dispatcher.d
│ ├── available_farms
│ │ ├── 000_ams_catchall_farm.any
│ │ ├── 001_ams_author_flush_farm.any
│ │ ├── 001_ams_publish_flush_farm.any
│ │ ├── 002_ams_author_farm.any
│ │ ├── 002_ams_lc_farm.any
│ │ └── 002_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_catchall_farm.any -> ../available_farms/000_ams_catchall_farm.any
│ │ ├── 001_ams_author_flush_farm.any -> ../available_farms/001_ams_author_flush_farm.any
│ │ ├── 001_ams_publish_flush_farm.any -> ../available_farms/001_ams_publish_flush_farm.any
│ │ ├── 002_ams_author_farm.any -> ../available_farms/002_ams_author_farm.any
│ │ └── 002_ams_publish_farm.any -> ../available_farms/002_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-mpm.conf.old
│ ├── 00-proxy.conf
│ ├── 00-systemd.conf
│ ├── 01-cgi.conf
│ └── 02-dispatcher.conf
├── logs -> ../../var/log/httpd
├── modules -> ../../usr/lib64/httpd/modules
└── run -> /run/httpd