Load balancing Nginx step by step

Cara pengaturan load balancing dengan Nginx, Linux CentOS ikuti step by stepnya berikut ini.

Setidaknya punya 3 server/IP

  • server I untuk load balancing dengan Nginx
  • server II web1 (bisa nginx, apache dll)
  • server III web2 (bisa apache, nginx dll)

Gunakan System Operasi Linux CentOS 6 minimal

1. Menambahkan Repository Epel

Untuk CentOS 32bit

wget http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
rpm -ivh epel-release-6-8.noarch.rpm

Untuk CentOS 64bit

wget http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
rpm -ivh epel-release-6-8.noarch.rpm

 

2. Install Nginx
Install aplikasi dan start nginx disusul dengan menambahkan service nginx ke daftar startup agar selalu aktif saat mesin direboot.

yum install nginx -y
service nginx start
chkconfig --levels 235 nginx on

 

3. Chek
buka browser cek http://ip, Jika berhasil ada tulisan Welcome to Nginx, jika gagal stop dan remove httpd kemudian start/restart nginx.

service httpd stop
yum remove httpd
service nginx start

 

4. Load Balancing Nginx
Pada contoh dibawah ini Load balancing ini berfungsi untuk menyeimbangkan beban trafik http(s) yang akan ditargetkan ke aplikasi agar berjalan optimal.

buat file konfigurasi nginx load balance lokasinya ada di /etc/nginx/conf.d/

vi /etc/nginx/conf.d/load_balance.conf

Isinya sebagai berikut

upstream loadbalance {
       192.0.0.1;
       192.0.2.2;
}
server {
       listen 80;
       server_name domain.com www.domain.com;

       error_log /var/log/nginx/error.log crit;
       access_log off;

       location / {
              proxy_pass http://loadbalance;
       }
}

 

Untuk trafik HTTPS gunakan konfigurasi berikut

upstream loadbalance {
       192.0.0.1;
       192.0.2.2;
}
server {
        listen          80;
        server_name     domain.com www.domain.com;
        return          301  https://$server_name$request_uri;
}
server {
        listen 443 ssl;
        server_name domain.com;

        ssl on;
        ssl_certificate /lokasi/sertifikat/ssl/fullchain.pem;
        ssl_certificate_key /lokasi/sertifikat/ssl/privkey.pem;
        ssl_prefer_server_ciphers on;

        error_log /var/log/nginx/error.log crit;
        access_log off;

        location / {
               proxy_pass http://loadbalance;
        }
 }

5. Cek

Restart Nginx

service nginx restart

Coba shutdown server III, cek di browser jika website tetap online dengan server II berarti OK, begitu sebaliknya.

Referensi : Using Nginx as HTTP load balancer

Add a comment