Contents...
Nginx is a high performance and lightweight web server. It also work as web reverse proxy and email (POP3/IMAP)proxy server. It runs on Linux, UNIX, BSD, Mac OS X, Solaris and Microsoft Windows. As per the Netcraft more than 6% of all domains on the internet use Nginx web server. Nginx powers several high traffic web sites like WordPress, Github, Hulu, and SourceForge. The need for serving large number of concurrent requests is raising every day. Also Nginx solved the C10K ( i.e 10,000 concurrent clients) Problem.
In this tutorial I will explain how to setup Nginx load balancer in Linux.
Install Nginx Web Server
First of all you have to install Nginx web server. Follow the below command or Link to install Nginx.
Link: How To Install Nginx
On Ubuntu/Debian
$ sudo apt-get install nginx
On CentOS/RHEL/Fedora
#yum install nginx
Configure VirtualHost
Now create a Nginx virtual host configuration file as per your domain. Follow the below minimal setting configuration file.
# vim /etc/nginx/conf.d/virtual-domain.conf upstream app_servers { server app1.example.com; server app2.example.com; } server { listen 80; server_name example.com www.example.com; location / { proxy_pass http://app_servers; } }
Upstream Setting
You can also set some useful setting to more customize and optimize your load balancer with Nginx such as weight and IP hash like below configuration:
Weight
upstream app_servers { server app1.example.com weight=1; server app2.example.com weight=2; }
IP Hash
upstream app_servers { ip_hash; server app1.example.com; server app2.example.com; server app3.example.com down; }
Restart Nginx Service
Now restart the Nginx web service after making above changes using below command:
# service nginx restart OR # systemctl restart nginx.service
Thanks:)
If you find this tutorial helpful please share with your friends to keep it alive. For more helpful topic browse my website www.looklinux.com. To become an author at LookLinux Submit Article. Stay connected to Facebook.
how to setup nginx as a load baalnce with postgres db?
Hi Humza,
First of all thanks for visiting looklinux.
We can’t do this with Nginx load balancing because Nginx work work on application layer.
You should use HaProxy, with HaProxy you have the choice of proxying traffic at layer 4 (TCP) or layer 7 (HTTP). The former is great for load balancing non-HTTP services, such as databases, whereas the latter is perfect for load balancing web applications. May be my this tutorial will help you.
https://www.looklinux.com/how-to-install-haproxy-on-centos-7/