Load balancing
One way to increase the capacity of the Genero Application Server (GAS) is to scale it out by deploying multiple instances of the GAS on different servers.
As the GAS is fully integrated with existing web servers, third-party tools can be used to implement load balancing so that network traffic is distributed across a group of backend servers.
Load balancing options
GAS applications can be load balanced using standard load balancing techniques, including software load balancers such as Windows® Network Load Balancing or HAProxy, as well as hardware-based load balancing appliances.
There is no reason to have a web server, its dispatcher, and the VMProxy on different machines. While the load balancer will balance load across different machines, on each machine you will find one web server, one dispatcher, all attached proxies, and all attached DVMs. In production, you should think of the GAS as a group comprised of the web server, dispatcher and proxies, and DVMs.
Configuring load balancer for X-Forwarded headers
The load balancer gateway is the entry point of your application. It routes the client request to the appropriate GAS. The GAS behind the load balancer needs to know this entry point in order to generate the appropriate URLs in your applications.
- X-Forwarded-Proto should contain HTTP or HTTPS
- X-Forwarded-Host should contain host:port
- X-Forwarded-Prefix should contain the PathBase (/path/base) of the URI
The GAS will automatically use these header values to build the URL used by the client application without any additional configuration. For more information on forwarded HTTP headers, see rfc7239.
Topics in this section discuss considerations for load balancing GAS applications on multiple instances. The provided examples illustrate simple configurations for Internet Information Services and Apache Web servers.