Child pages
  • Servoy Application Server Configuration for Load Balancing
Skip to end of metadata
Go to start of metadata

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

  • Open {servoyInstall}/application_server/server/conf/server.xml and make the following adjustments:
    • Change line '<Engine name="Catalina" defaultHost="localhost">' into '<Engine jvmRoute="servoy1" name="Catalina" defaultHost="localhost">'. The value of the jvmRoute atrribute needs to be different for each Servoy Application server and match with the list of workers registered with the Apache HTTP server (see Apache HTTP Server Configuration)
    • Add the following connector before the already declared one in both installations:

      <Connector port="8009"
         enableLookups="false" maxThreads="500" connectionTimeout="60000"
         redirectPort="8443" useBodyEncodingForURI="true" protocol="AJP/1.3"/>
      

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.

  • No labels