Configure a content delivery (CD) server

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.

Recommendations

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.

Note

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.

Configuration and connections

In order to install a Sitecore server, you must:

  1. 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.
  2. Install a Sitecore instance using the Sitecore Installation Framework according to the instructions in the Installation Guide 9.0.

Note

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:

  1. Remove or restrict access to the client. You do not need the Sitecore client on a content delivery server.
  2. 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" />
  1. Ensure the following connection strings are set in the \App_Config\ConnectionStrings.config file:
Name Type Notes
core SQL  
web SQL  
xconnect.collection HTTPS  
xconnect.collection.certificate Certificate  
xdb.referencedata.client HTTPS  
xdb.referencedata.client.certificate Certificate  
xdb.marketingautomation.operations.client HTTPS Required for live event tracking
xdb.marketingautomation.operations.client.certificate Certificate  
ExperienceForms SQL  

Note

If xConnect has been set up to use separate collection and search end points, they must be configured separately.

  1. 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.

Security

Refer to the Security Hardening Guide for comprehensive security hardening instructions.

Configure IP hashing

Configure IP address hashing on all CD servers.

Configure multiple CD servers

If you are configuring multiple content delivery servers, you must perform these additional steps on each server:

  1. 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>
  1. 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>

Note

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.

  1. Choose one CD instance to perform GeoIP lookups by using a patch file to set the Analytics.PerformLookup property 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" />

Load balancing CD servers

You are required to use out-proc session state management if you have one or more CD servers. This means that you do not have to use a persistent load-balancing method.

See also: