HOW TO SETUP NGINX LOAD BALANCING
LOAD BALANCING : Load Balancing is an efficient mechanism which improves the distribution of workloads or traffic across several capable Virtual Private Server.Using multiple components with load balancing instead of a single component may increase reliability and availability through redundancy.The Round Robin Algorithm will sequentially distribute requests across the group of servers and easy to implement.SETUP : To setup Nginx Load Balancing
- You must have root privilges on your VPS.
- Nginx must be installed on your VPS.
By using "apt-get", you can easily install it.
sudo apt-get install nginx
UPSTREAM MODULE : In order to setup Round Robin Load Balancer,we have to use Nginx upstream module and include configuration into the Nginx setting.
sudo nano /etc/nginx/sites-available/default
Now, add the load balancing configuration to the file.
1. Include the Upstream Module
upstream xyz
{
server xyz1.example.com;
server xyz2.example.com;
server xyz3.example.com;
}
2. Now, reference this module in the configuration. request from http://xyz would be distributed to xyz1.example.com, xyz2.example.com and xyz3.example.com
server
{
location /
{
proxy_pass http://xyz;
}
}
Now, restart nginx with:
sudo service nginx restart
Several directives are used to direct site visitors more effectively to equally distribute load across virtual servers.WEIGHT : Nginx allows us to assign weight to machines in number specifying the proportion of traffic that should be directed to each server.
upstream xyz
{
server xyz1.example.com weight=1;
server xyz2.example.com weight=2;
server xyz3.example.com weight=4;
}
If a server is known to be inactive, it should be marked as down like
server xyz3.example.com.com down;
MAX FAILS : There are two factors associated with the max fails: max_fails and fall_timeout.Max_fails refers to the maximum number of failed attempts to connect to a server should occur before it is considered inactive.Fall_timeout specifies the length of that the server is considered inoperative.
Now, the configuration look like :
Once the time expires, new attempts to reach the server will start up again.
The default timeout value is 10 seconds.
upstream xyz
{
server xyz1.example.com.com max_fails=3 fail_timeout=15s;
server xyz2.example.com weight=2;
server xyz3.example.com weight=4;
}
This is all about using Nginx as a load balancer. Any doubts or suggestions are most welcome in comments.
0 comments:
Post a Comment