To make a Servoy Application Server work properly with the Apache HTTP Server and Load balancing, the following modifications to the configuration of the Servoy Application Server are required:

AJP 1.3 connector

When the Servoy Application Servers and the Apache HTTP Server is started, connecting clients will be automatically distributed over the configured Servoy Application Servers in a weighted round-robin load balancing with sticky sessions manner.

jnlpCodebaseOverride

Load-balancing of Smart Clients is done by serving the JNLP file from the different Servoy Application Servers when the Apache HTTP front-end is accessed. The Apache HTTP Server serves the JNLP file to the requesting client and using the JNLP, the requesting client will connect directly to the Servoy Application Server that supplied the JNLP.

This means that each Servoy Application Server needs to be accessible to connecting client. Because of this, the external hostname/IP Address and port of the Servoy Application Server need to be registered as jnlpCodebaseOverride value. For more information, see Network Related Settings.

servoy.jnlpCodebaseOverride=http://thisServersHostnameAsSeenByClients:port

What should be taken into consideration when setting up a load-balanced cluster and allowing Smart Clients to connect directly to individual servers in the cluster is isolating the cluster so that connections to ports used by Terracotta (see tc-config.xml) are only allowed from within the cluster, even if connections from client machines on Servoy ports should be allowed to all Servoy Application Servers.