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.Native web farm support in Kentico provides the following features:

  • Synchronization of cache and content from a database to 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 shows the structure of a web farm and how the synchronization works:

Web farm schema

If you change some settings or content or upload a file using server, 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.