1. Overview
Custom Analytics supports deployment to multiple servers as a server farm for load balancing purposes or to set up a failover server. In these scenarios, multiple servers have Custom Analytics installed but each installation points to the same Custom Analytics Application Database and Warehouse Database.

2. Deployment
If you do not have a Custom Analytics instance installed on any of your servers, follow the instructions for installing Custom Analytics to create an instance. While deploying the first instance, when asked to choose the application database, you can either create a new application database or use an existing one (and the same for the warehouse database).
When creating instances on other servers, choose the option to Use existing application database, and enter the connection details to use the same databases you either created or used for the first instance.
3. Multiple scheduler services
Custom Analytics allows for multiple scheduler services to be running and sharing an application database. Only one scheduler will be active at a time. The other schedulers will wait on call, and will become active if the other schedulers stop.

4. Failover setup
To have a Custom Analytics server act as a passive failover server, which you can use if your primary or active server becomes unavailable, create another instance of Custom Analytics on another server that uses the same application and warehouse databases as described above. After installation, take this server offline either by powering down the machine or stopping the Custom Analytics web application (e.g., stopping the application pool in IIS on Windows), and bring it back online when needed.
It is also possible to set up a failover configuration on your web server, for example for IIS, and for SQL Server or PostgreSQL where Custom Analytics's application and warehouse databases are stored.
5. Notes
- Custom Analytics licensing is tied to an instance of the Custom Analytics Application Database, so additional licenses are not required for multiple Custom Analytics servers to be active using the same application database unless you have exceeded the number of servers or CPUs in your license. You can view your current license to find these details.
- Ensure the configuration settings for the External Application URL and Internal Application URL are updated if necessary if you have set up a server cluster or when the address to access the application changes.
- A load balancer should set the following HTTP request headers: X-Forwarded-For, X-Forwarded-Proto, and X-Forwarded-Host. If the port is not already included in the X-Forwarded-Host header, an X-Forwarded-Port header should be set with the corresponding value.
- Your load balancer's IP address should be specified in the Trusted Proxy IP Addresses configuration setting in Custom Analytics when using one.
- If multiple nodes in a server farm need to override Custom Analytics configuration settings with the same values, the best practice is to accomplish this using server groups. For more information, see Managing server groups.
- App customizations and extensions are generally designed to be propagated to all servers automatically. For more details, see White labeling the application and Understanding the Dundas BI extension format.
- In versions 24.3 and higher, you do not need to set up session affinity/sticky sessions if you set up a Redis Cache Provider: install it or run it on Docker, configure Cache Provider in configuration settings to use the Redis Cache Provider option, then set the Connection String and Password settings found in the Redis Cache Provider category.
