Warm up sites
Describes how to perform a warm up of your Optimizely Digital Experience (DXP) site when it scales up or out and before new code is deployed to production.
See information on scaling up an app.
Warm-up is when a Web App gets requests, such as pre-populating in-memory cache before it receives production traffic. This is needed to make code deployments to production and scaling up or out as seamless as possible.
Optimizely's deployment automation engine attempts to configure a warm-up section automatically during deployments by...
- Issuing a web request to the start page.
- Parsing the resulting HTML output to find relative links on the site's start page.
This is done for each unique hostname that was bound to the site. This warm-up package is automatically added as a dependency from EPiServer.CloudPlatform.Cms
, which is a required package to run in DXP
To warm up the application, EPiServer.CloudPlatform.Cms.Warmup
parses homepage links and follows them with a request. There are a limited number of options that you can configure on WarmupOptions
.
"EPiServer": {
"CMS": {
"WarmupOptions": {
"Disable": "false",
"FollowLinkLevel": 1,
"WaitingForStartupTimeout": "0:3:0",
"StartupWaitingInterval": "0:3:0",
"RequestTimeout": "0:0:1:0",
"MaxNumberParallelRequests": 10
"AdditionalPaths": [
"/en/alloy-plan",
"/en/alloy-save"
]
}
}
}
public void ConfigureServices(IServiceCollection services) {
services.Configure<WarmupOptions>(x => {
x.Disable = false;
x.FollowLinkLevel = 1;
x.WaitingForStartupTimeout = TimeSpan.FromSeconds(180);
x.StartupWaitingInterval = TimeSpan.FromMilliseconds(10);
x.RequestTimeout = TimeSpan.FromMinutes(1);
x.MaxNumberParallelRequests = 10;
x.AdditionalPaths.Add("/en/alloy-plan");
x.AdditionalPaths.Add("/en/alloy-save");
});
}
Note
Sites behind a log-in may experience a 403/400 error on deployments during warm up because the status cannot be confirmed with a log-in redirect. See Web application warm up during DXC Service deployments for more information.
Updated 3 months ago