Configure Virtual Hosts in an Environment
Introduction
Goal
Configure delivery tier virtual hosts after first deployment in an environment.
Background
Bloomreach Experience Manager's delivery tier supports running multiple sites on different host names with cross-domain linking.
The virtual hosts configuration is stored in the content repository and managed using the Console application.
Static Virtual Hosts
Let's assume Bloomreach Experience Manager has been deployed in a production environment serving one site at https://www.example.com and the CMS application at https://cms.example.com.
-
The starting point is the default virtual hosts configuration of a Bloomreach Experience Manager project:
/hst:hst/hst:hosts: /dev-localhost: jcr:primaryType: hst:virtualhostgroup /localhost: jcr:primaryType: hst:virtualhost /hst:root: jcr:primaryType: hst:mount
It configures the virtual host localhost for use in a local development environment.
-
Create a new virtual host group production-env by adding a node of type hst:virtualhostgroup:
/hst:hst/hst:hosts: /dev-localhost: jcr:primaryType: hst:virtualhostgroup /localhost: jcr:primaryType: hst:virtualhost /hst:root: jcr:primaryType: hst:mount /production-env: jcr:primaryType: hst:virtualhostgroup
- In the production-env virtual host group, create a reverse hierarchy of the www.example.com domain using nodes of type hst:virtualhost:
/hst:hst/hst:hosts: /dev-localhost: jcr:primaryType: hst:virtualhostgroup /localhost: jcr:primaryType: hst:virtualhost /hst:root: jcr:primaryType: hst:mount /production-env: jcr:primaryType: hst:virtualhostgroup /com: jcr:primaryType: hst:virtualhost /example: jcr:primaryType: hst:virtualhost /www: jcr:primaryType: hst:virtualhost
- Copy the node hst:hst/hst:hosts/dev-localhost/localhost/hst:root to hst:hst/hst:hosts/production-env/com/example/www/hst:root to mount the site at the www.example.com virtual host:
/hst:hst/hst:hosts: /dev-localhost: jcr:primaryType: hst:virtualhostgroup /localhost: jcr:primaryType: hst:virtualhost /hst:root: jcr:primaryType: hst:mount /production-env: jcr:primaryType: hst:virtualhostgroup /com: jcr:primaryType: hst:virtualhost /example: jcr:primaryType: hst:virtualhost /www: jcr:primaryType: hst:virtualhost /hst:root: jcr:primaryType: hst:mount
- Add the two Boolean properties hst:showport and hst:showcontextpath, both with value false, to the hst:root node:
/hst:hst/hst:hosts: /dev-localhost: jcr:primaryType: hst:virtualhostgroup /localhost: jcr:primaryType: hst:virtualhost /hst:root: jcr:primaryType: hst:mount /production-env: jcr:primaryType: hst:virtualhostgroup /com: jcr:primaryType: hst:virtualhost hst:scheme: https hst:showport: false hst:showcontextpath: false /example: jcr:primaryType: hst:virtualhost /www: jcr:primaryType: hst:virtualhost /hst:root: jcr:primaryType: hst:mount
Use hst:scheme = https in HTTPS-only scenarios (recommended). Alternatively, use hst:scheme = http for HTTP-only, or hst:schemeagnostic = true to support both HTTP and HTTPS.
The properties hst:showport and hst:showcontextpath when set to false make sure that the context path and port are not included in links generated by the delivery tier. They can be specified at any level in the virtual hosts configuration and are inherited by child configuration nodes.
- Mirror the new virtual hosts group in the platform configuration in order to define the CMS mount:
/hst:platform/hst-hosts/production-env: jcr:primaryType: hst:virtualhostgroup /com: jcr:primaryType: hst:virtualhost hst:scheme: https hst:showport: false hst:showcontextpath: false /example: jcr:primaryType: hst:virtualhost /cms: jcr:primaryType: hst:virtualhost /hst:root: jcr:primaryType: hst:mount hst:ismapped: false hst:namedpipeline: WebApplicationInvokingPipeline
- Write changes to the repository.