Load Balancing - what should the umbracoApplicationUrl be?

Hello Umbraco folks :waving_hand:

I’m looking to load balance an Umbraco 13 site and am a little confused as to what the umbracoApplicationUrl should be set to.

Let’s say for example we have the following setup for a website hosted at www.test.com:

[ Back office server : backoffice.umbraco.site ]
[ Front end server : fe-01.umbraco.site ]
[ Front end server : fe-02.umbraco.site ]

Let’s also assume backoffice.umbraco.site has been set as the SchedulingPublisher and the two front end instances have been set to Subscribers (both explicitly using the IServerRoleAccessor code).

The docs state The address used by the "Scheduling server" is called the "umbracoApplicationUrl". which suggests that all of the servers should have an umbracoApplicationUrl of https://backoffice.umbraco.site/ but then I’m confused as to how the backoffice communicates with the front end to rebuild cache.

Should the umbracoApplicationUrl be set to the scheduling server across all instances or should each instance have it’s own unique url?

I’ve played around with different values in the setting, but everything seems to work as expected so looking for some clarification.

This ApplicationURL is used in various places - if you’re not careful you’ll end up with public facing urls that contain either an unreachable backoffice / load balanced node or worse Google will start indexing them.

I’ve always understood it that both your backoffice and your front end nodes should have the public facing https://acme.com url in this setting. But I agree the docs seem a bit unclear here… all I can say is this is what’s working for me!

I have scheduled jobs (done outside of Umbraco) that need to hit hidden URLS and I do hit the equivalent of backoffice.acme.com - because it triggers publishes and that server doesn’t do much else.

EDIT: and with regards to how the consuming subscribing servers “know” that a publish has occurred I think is via a DB call occasionally, I think how it basically works is a publish happens on backoffice - this updates the load balancing table in the DB, the subscribers spot this and rebuild their cache.

From a discord chat, and docs got updated subsequently I think…
I think I followed Owain Jones last comment.

[Solved] UmbracoApplicationUrl Umbraco #help-with-umbraco

Umbraco application URL
Defines the Umbraco application URL that the server should reach itself. By default, Umbraco will guess that URL from the first request made to the server. Use this setting if the guess is not correct (because you are behind a load-balancer, for example). Format is: http://www.mysite.com/, ensure to contain the scheme (http/https) and complete hostname.
Previously before v9, it was required to specify backoffice path as this was customizable (/umbraco by default). However, from v9+ this is no longer possible, so it’s sufficient to use the URL that contains the scheme (http/https) and complete hostname.