We have a Kentico Xperience 13 solution; our websites are built using ASP.NET Core.
Our Staging (UAT) environment has:
- a Content Management server,
- 2 load balanced Content Delivery servers.
The website definition has:
- Presentation URL configured as the load balanced URL,
- dedicated domain aliases, one assigned for each Content Delivery server.
We can access the CD1 website via:
- https://www.website-url.com
- https://cd1.website-url.com
And the CD2 website via:
- https://www.website-url.com
- https://cd2.website-url.com
We have an intermittent problem occurring immediately following deployment to this environment.
After successfully deploying the CMS code, our basic ASP.NET Core website deployment process is as follows:
- switch off the CD1 website,
- deploy a new version of the website,
- start the CD1 website,
- request the direct URL (https://cd1.website-url.com) to load the website and check it is operational.
We then repeat the above process for CD2.
These deployments happen in sequence i.e. we fully deploy CD1 before moving on to CD2.
The issue we are seeing is that once deployed CD1 fails to load the website using the load balanced Presentation URL.
The following requests and responses are observed:
- https://cd1.website-url.com/ - 200 OK
- https://cd1.website-url.com/a-sub-page - 200 OK
- https://www.website-url.com/ - 404 Page not found
- https://www.website-url.com/a-sub-page - 200 OK
Note from above results: subpages access via the load balanced Presentation URL respond as expected. What fails is the Presentation URL root domain which returns a 404.
The same issue does not appear to affect the CD2 server, however, this issue is highly unpredictable.
Restarting the server (Windows rather than IIS) causes the following behaviour to then be witnessed:
- https://cd1.website-url.com/ - 404 Page not found
- https://cd1.website-url.com/a-sub-page - 200 OK
- https://www.website-url.com/ - 404 Page not found
- https://www.website-url.com/a-sub-page - 200 OK
Note from the above results: subpages still function, but now both CD1 and www root domains fail.
Both CD1 and CD2 load their settings from the same database and therefore will be aware of the same load balanced Presentation URL.
Has anyone seen a similar issue?
Can anyone point me in the direction of CMS or IIS settings to review?
Thanks,
Dean
Update: 26 August 2022 @ 09:27
Our UAT environment is powered down overnight and then booted in the morning.
This affects the database and all web servers.
After this full shutdown and boot, the CD1 website URL resolution now functions as expected.
This adds to the unpredictable nature of the issue; restarting the single CD1 server yesterday compounded the problem. A full restart of the entire environment appears to have temporarily resolved it.
Going from our experience with this issue, it is likely to reappear as we deploy more versions of the solution.
I am unsure if this offers any clues, a full reboot does differ in the sense that the CM and database are also powered down and no warmup URLs are requested on individual servers during the boot process.