Configure a content delivery (CD) server¶
In this topic:
Content delivery servers make your web content available to your website visitors. You can configure one or more content delivery servers for improved scalability and better performance. If you expect to have high numbers of visitors or want to configure servers in different geographic locations, you can arrange content delivery servers into clusters.
Before you configure a content delivery server, consider the following recommendations:
- xDB analytics tracking – enable this feature. Tracking is required on a content delivery server to track contacts, goals, and outcomes, and perform personalization.
- Session state – use session state to share contact sessions across all browsers and devices. This is important if you are configuring clusters of content delivery or processing servers. For each server cluster, configure private and shared session state and a session state database to ensure that contacts stay connected to the same server until the session ends.
- xDB Cloud configuration – if you are running xDB Cloud edition, you must configure your content delivery environment according to this topic and the instructions for configuring xDB Cloud.
Synchronize all servers to a single reliable time source, for example, by means of the Network Time Protocol (NTP). The aggregation of engagement automation states depends on the system time and changing this can lead to incorrect aggregation results or loss of data.
In order to install a Sitecore server, you must:
- Ensure that you have read the hardware guidelines for Sitecore Hosting Environment Requirements and Sitecore Client Requirements sections from Installation Guide 9.0. You can download the guide from the Sitecore Downloads page.
- Install a Sitecore instance using the Sitecore Installation Framework according to the instructions in the Installation Guide 9.0.
When you use the Sitecore Installation Framework to install the server, you do not need to configure the server and the connections manually. The Sitecore Installation Framework performs the following steps automatically.
In order to configure a content delivery server manually, you must:
- Remove or restrict access to the client. You do not need the Sitecore client on a content delivery server.
- Use rule-based configuration to configure the server to fulfill only the ContentDelivery role by including this line in the web.config file:
<add key="role:define" value="ContentDelivery" />
- Ensure the following connection strings are set in the \App_Config\ConnectionStrings.config file:
|xdb.marketingautomation.operations.client||HTTPS||Required for live event tracking|
If xConnect has been set up to use separate collection and search end points, they must be configured separately.
- Configure content search. Configuration depends on your provider:
In a scaled environment, you should use Solr or Azure Search - Lucene is not recommended. Azure Search provider is supported for Azure Cloud PAAS deployments only.
Refer to the Security Hardening Guide for comprehensive security hardening instructions.
If you are configuring multiple content delivery servers, you must perform these additional steps on each server:
- Use a patch file to set the InstanceName. In the following example, change testCD1 to the chosen name of your instance:
<setting name="InstanceName"> <patch:attribute name="value">testCD1</patch:attribute> </setting>
- Ensure that the Publishing.PublishingInstance setting in the \App_Config\Sitecore.config file is empty - otherwise patch in an empty value:
<!-- PUBLISHING INSTANCE Assigns the instance name of dedicated Sitecore installation for publishing operations. When empty, all publishing operations are performed on the local installation of Sitecore. Default vaue: (empty) --> <setting name="Publishing.PublishingInstance"> <patch:attribute name="value"></patch:attribute> </setting>
In the \App_Config\Include\Examples folder you can find the ScalabilitySettings.config.example file, which contains the options from step 1 and 2, and other related settings. You can specify your settings in this file and remove the .example from the file name to activate it.
- Choose one CD instance to perform GeoIP lookups by using a patch file to set the
Analytics.PerformLookupproperty to true in \App_Config\Sitecore\Marketing.Tracking\Sitecore.Analytics.Tracking.config. For all other CD instances, set this value to false.
<!-- ANALYTICS PERFORM LOOKUP Determines if this server performs the lookups (DNS and URLs). Only one server should be responsible for performning the lookup. Default: true --> <setting name="Analytics.PerformLookup" value="true" />
Please submit documentation feedback to email@example.com.