Payara Server load balancing with NGINX

Photo of Claudio Salinitro by Claudio Salinitro
NGINX Logo This short blog post will show you how to use NGINX to load balance between 2 or more Payara Server instances using the sticky session.

 

Requirements


The sticky session directive is included in the commercial release of nginx only, for this reason we are using the nginx-sticky-module-ng (not officially supported) module:
https://bitbucket.org/nginx-goodies/nginx-sticky-module-ng
There are some minimal syntax differences between this and the commercial module, the latter gives more flexibility and more configuration options.


Architecture:

NGNX

Configuration:

nginx.conf
http {
upstream backend {
           sticky domain=.mydomain.com path=/ expires=1h httponly;
           server 192.168.0.3:28080;
           server 192.168.0.4:28080;
}
server {
               location / {
                   proxy_pass http://backend;
               }
}
}


In the http block we add the list of our servers, and the sticky directive used to configure the cookie creation options. It’s possible to define the name of the cookie (by default is ‘route’), but if you use the JSESSIONID name it will conflict with the cookie created by the JAVA application servers behind. 

In the server block we define which location (in our case the root /) should be proxied to the backed servers previously defined.
In case we have more nginx frontend servers, and a load balancer in front of, we can apply the same configuration to nginx, and configure the load balancer stickiness using the cookie name defined.

 

 

Comments