Nginx is open source software for web serving, reverse proxying, caching, load balancing, media streaming, and more. NGINX is highly scalable as well, meaning that its service grows along with its clients traffic.
Load balancing across multiple application instances is a commonly used technique for optimizing resource utilization, maximizing throughput, reducing latency, and ensuring fault-tolerant configurations.
It is possible to use Nginx as a very efficient HTTP load balancer to distribute traffic to several application servers and to improve performance, scalability and reliability of web applications with Nginx.
Load Balancer Methods
The following load balancing mechanisms are supported in Nginx:
Round-robin — Requests to the application servers are distributed in a round-robin fashion.
Least-connected — Next request is assigned to the server with the least number of active connections.
IP-hash — A hash-function is used to determine what server should be selected for the next request (based on the client’s IP address).
Session persistence - With ip-hash, the client’s IP address is used as a hashing key to determine what server in a server group should be selected for the client’s requests. This method ensures that the requests from the same client will always be directed to the same server.