Payara Server load balancing with NGINX
Originally published on 10 Nov 2015
Last updated on 15 Jun 2021
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:
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.
Related Posts
Continuous Integration and Continuous Deployment for Jakarta EE Applications Made Easy
Published on 25 Mar 2024
by Luqman Saeed
0 Comments
Easy Jakarta EE Integration Testing with the Payara Platform and Testcontainers
Published on 24 Mar 2022
by Fabio Turizo
0 Comments