Dispatcher Setup
The AEM as a Cloud Service SDK includes the
recommended Dispatcher Tools version, that facilitates configuring, validating,
and simulating Dispatcher locally. Dispatcher Tools is comprised of:
- a baseline set of Apache HTTP Web server and Dispatcher
configuration files, located in .../dispatcher-sdk-x.x.x/src
- a configuration validator CLI tool, located at
.../dispatcher-sdk-x.x.x/bin/validate (Dispatcher SDK 2.0.29+)
- a configuration generation CLI tool, located at
.../dispatcher-sdk-x.x.x/bin/validator
- a configuration deployment CLI tool, located at
.../dispatcher-sdk-x.x.x/bin/docker_run
- a Docker image that runs Apache HTTP Web server with the
Dispatcher module
Prerequisites:
- Windows users must use Windows 10 Professional.
- Install Experience
Manager Publish Quickstart Jar on the
local develop machine. Please refer local set-up.
- Install and start the latest version of Docker
(Docker Desktop 2.2.0.5+ / Docker Engine v19.03.9+) on the local
development machine.
Dispatcher Set-Up
Dispatcher tools comes along with aem-sdk. Extract
this zip file.
In the
extracted folder, there is aem-sdk-dispacther-tools-x.x.xx-windows.zip. Extract
this zip in some folder, you can see below structure.
src folder
contains below folders:
Configuration
Structure:
./
├── conf.d
│ ├── available_vhosts
│ │
└── default.vhost
│ ├── dispatcher_vhost.conf
│ ├── enabled_vhosts
│ │ ├── README
│ │
└── default.vhost -> ../available_vhosts/default.vhost
│ └── rewrites
│ │ ├──
default_rewrite.rules
│ │
└── rewrite.rules
│ └── variables
| ├── custom.vars
│ └── global.vars
└──
conf.dispatcher.d
├── available_farms
│
└── default.farm
├── cache
│ ├──
default_invalidate.any
│ ├──
default_rules.any
│
└── rules.any
├── clientheaders
│ ├──
clientheaders.any
│
└── default_clientheaders.any
├── dispatcher.any
├── enabled_farms
│ ├── README
│
└── default.farm -> ../available_farms/default.farm
├── filters
│ ├──
default_filters.any
│
└── filters.any
├── renders
│
└── default_renders.any
└── virtualhosts
├── default_virtualhosts.any
└── virtualhosts.any
docs folder:
bin folder:
The bin subdirectory
also contains a docker image and a shell script to execute that will use your
deployment information and run an Apache and dispatcher in a docker container.
It also contains a validator binary for macOS and Linux.
Local development and testing
Start
publish instance and docker desktop first.
Step
1: Validate the Dispatcher configuration contained in this SDK
On Windows, go
to dispatcher folder and run below command
>
bin\validator full -d out src
This
validates the configuration and generates deployment information in out.
Out folder is
created in folder:
Step 2: Validate the deployment information by the
Dispatcher in a docker image.
Run below command:
bin\docker_run
out host.docker.internal:4503 8080
host.docker.internal is pointing to
localhost.
Open any page in
publish instance:
Open same url on port 8080 as we started docker on this port 8080.
Dispatcher is working and we can
access our publish instance pages on dispatcher.
Project Dispatcher’s code testing:
Step-1: Delete out folder from
dispatcher’s folder.
Step-2: Now run below command to deploy project’s
specific dispatcher configurations:
Let's add one rule in rewrite file.
custom.var file
bin\validator
full -d out <loctaion>/dispatcher/src
out folder is created in the same
folder:
Open any file to
check your configurations. Let’s say I opened file “rewrite_rules” and you can
see project specific configs are deployed successfully.
Step-3: Run below command
bin\docker_run
out host.docker.internal:4503 8080
With your AEM publish
server running on your system, listening on port 4503, you can start the
dispatcher in front of that server as follows:
In rewrite file there is rule
RewriteRule ^/?$
/content/${CONTENT_FOLDER_NAME}/us/en.html [PT,L]
Now open browser and run http://localhost:8080/
Dispatcher is setup now.