Membangun High Availability Nginx Cluster memerlukan kombinasi Nginx sebagai reverse proxy dan Keepalived untuk mengelola alamat IP virtual (VIP) melalui protokol VRRP (Virtual Router Redundancy Protocol). Pendekatan ini mengeliminasi titik kegagalan tunggal (single point of failure) pada lapisan gerbang masuk jaringan.
Ketika node Nginx utama mengalami kegagalan sistem atau terputus dari jaringan, Keepalived pada node cadangan (backup) akan secara otomatis mengambil alih alamat IP virtual dalam hitungan detik tanpa intervensi manual.
Komponen Arsitektur HA Nginx
Infrastruktur klaster ketersediaan tinggi ini membutuhkan setidaknya dua server mandiri yang berada dalam satu segmen jaringan lokal (LAN) yang sama agar pertukaran paket multicast VRRP berjalan lancar.
| Komponen | Fungsi Utama | Teknologi Terkait |
|---|---|---|
| Load Balancer | Meneruskan trafik masuk ke server backend | Nginx Plus / Open Source |
| IP Failover | Menjaga alamat IP tetap konsisten saat migrasi | Keepalived (VRRP) |
| Health Check | Memantau status kesehatan layanan secara berkala | Script Custom / Native Keepalived |
Langkah Konfigurasi Teknis
1. Instalasi Nginx dan Keepalived
Lakukan instalasi paket pada kedua node (Node Utama dan Node Cadangan) menggunakan manajer paket sistem operasi berbasis Debian atau Ubuntu.
sudo apt update
sudo apt install nginx keepalived -y
2. Konfigurasi Keepalived (Node Utama / Master)
Ubah berkas konfigurasi /etc/keepalived/keepalived.conf pada node utama dengan parameter prioritas lebih tinggi.
vrrp_script check_nginx {
script "/usr/bin/killall -0 nginx"
interval 2
weight 2
}
vrrp_instance VI_1 {
state MASTER
interface eth0
virtual_router_id 51
priority 101
advert_int 1
authentication {
auth_type PASS
auth_pass rahasia_cluster
}
virtual_ipaddress {
192.168.1.100
}
track_script {
check_nginx
}
}
3. Konfigurasi Keepalived (Node Cadangan / Backup)
Pada node kedua, atur status menjadi BACKUP dan berikan nilai prioritas yang lebih rendah daripada node utama.
vrrp_script check_nginx {
script "/usr/bin/killall -0 nginx"
interval 2
weight 2
}
vrrp_instance VI_1 {
state BACKUP
interface eth0
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass rahasia_cluster
}
virtual_ipaddress {
192.168.1.100
}
track_script {
check_nginx
}
}
Troubleshooting Lapangan
Kendala yang sering terjadi adalah kegagalan pengiriman paket multicast VRRP akibat pengaturan firewall sistem operasi atau perangkat jaringan (switches). Pastikan protokol VRRP (IP protokol 112) dan port yang relevan diizinkan pada iptables atau UFW.
Gunakan utilitas tcpdump untuk memverifikasi apakah paket iklan VRRP antar node saling diterima dengan baik:
sudo tcpdump -nn vrrp -i eth0