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