Setting up web farms

Web farms distribute computing among multiple web servers that all provide the same content. Each server increases the number of requests that the web farm can serve, which allows you to scale the performance of the website. You can also use web farms to achieve high availability – if one of the servers in the web farm stops working, the other servers continue to run the site.

Web farms are also required for all sites that use the MVC development model to ensure correct synchronization between the administration and live site applications.

Native web farm support in Kentico provides the following features:

  • Synchronization of cached content and settings across all web farm servers.
  • Synchronization of changes made to the site settings on one of the servers to all other servers.
  • Synchronization of files uploaded to the site between all servers. This is used only if you store uploaded files on the disk or on both disk and in the database.

The following image illustrates the structure of a web farm environment and demonstrates how the synchronization works:

Web farm schema

If you change some settings or content or upload a file using server 192.168.1.2, the other servers do not know about this change in a standard scenario. However, if you are using web farm synchronization, the system automatically logs the changes into the database as web farm tasks.

The system uses the CMS_WebFarmServerTask database table to find tasks created for the current server. On the application side, a routine runs in a separate long running thread which continuously polls the database to find the tasks.

Before you can start using web farm synchronization, you need to make sure that all servers that make up a web farm are configured in the system. See Configuring web farm servers.

Note: The web farm support doesn’t replace load-balancing or web farm management tools.