Introduction to Load Balancing
Cascade Server 5.0 adds the ability to load balance multiple application servers to reduce downtime and improve performance. This involves running multiple Cascade Server 5 machines behind a proxy, or load balancer; typically this will be Apache. To the end user, the CMS address stays the same; behind the scenes, one of many different application servers will handle each user’s requests.

This diagram illustrates a typical CS5 load balanced network topology. Requests from end users are received by an Apache instance running the mod_jk module. These requests are then dispatched by mod_jk to the CS5 machines. The CS5 servers interact with the database normally. Typically one will be able to run multiple CS5 servers against a single database. Sometimes, depending on the configuration, it may be desirable for the database to also be load balanced; this is currently outside the scope of this document. At present, only CS5 load balancing is supported by Hannon Hill.
Requirements
- All CS5 machines must be running the exact same version of the software.
- Running multiple CS5 nodes on the same physical machine is not supported.
- When upgrading a group of CS5 servers, all nodes must be brought down before the software is upgraded on each node.
- Hannon Hill supports using Apache 2+ mod_jk for fail-over and load balancing.
- Each CS5 node name must be unique.
Additional Notes
If you have CS5.0 deployed in something other than the ROOT webapp, you will need to ensure that your JkMount directive uses the same webapp name as the mount point.
Session replication will not be a part of the CS5.0 load balancing strategy. That means that any user sessions that are on a node will be terminated if that node is brought down. The user will see this event as being redirected to the login screen.
When running in a load balanced configuration, all servers on which Cascade Server are running must have their internal clocks synchronized to within one second of each other. The preferred solution is to use a common NTP (Network Time Protocol) server setting on all application servers.