Cara Setting Load Balancing dengan Nginx di Ubuntu dan AlmaLinux
Pengantar
Load balancing merupakan teknik penting dalam pengelolaan server modern, terutama untuk website atau aplikasi dengan trafik tinggi. Dengan load balancing, beban akses tidak hanya bergantung pada satu server, melainkan dibagi ke beberapa backend server agar performa tetap stabil dan layanan selalu tersedia.
Pada artikel ini, Plasawebhost akan membahas cara konfigurasi load balancing menggunakan Nginx yang dapat diterapkan di Ubuntu 22.04 / 24.04 maupun AlmaLinux, lengkap dari konsep hingga pengujian.
Pengertian Load Balancing dan Reverse Proxy
Nginx dapat berfungsi sebagai reverse proxy, yaitu server yang menerima permintaan dari client lalu meneruskannya ke server backend.
Manfaat utama reverse proxy:
- Membagi beban request (load balancing)
- Meningkatkan performa aplikasi
- Menyederhanakan manajemen backend
- Menambah lapisan keamanan
- Mendukung SSL termination dan caching
Metode Load Balancing di Nginx
Nginx menyediakan beberapa metode load balancing, antara lain:
- Round Robin
Membagi request secara merata (default). - Least Connections
Request diarahkan ke server dengan koneksi aktif paling sedikit. - IP Hash
Client dengan IP yang sama akan selalu diarahkan ke server yang sama.
Metode ini dapat dipilih sesuai dengan kebutuhan aplikasi.
Topologi Server yang Digunakan
- Sistem Operasi: Ubuntu Server / AlmaLinux
- Web Server: Nginx
- Backend Runtime: PHP-FPM
- Backend Server: 2 atau lebih node
- Load Balancer: 1 server Nginx
- Domain: Pastikan domain sudah di pointing ke dalam IP Load Balancer

Instalasi LEMP di Node 1 (Almalinux) dan Node 2 (Ubuntu)
Langkah ini dilakukan di masing-masing backend server
- Update Sistem
- Ubuntu:
sudo apt update && sudo apt upgrade -y - AlmaLinux:
sudo dnf update -y
- Ubuntu:
- Install Nginx
-
Ubuntu:
sudo apt install nginx -y - Almalinux
sudo dnf install nginx -y - Aktifkan service:
sudo systemctl enable --now nginx
-
- Install PHP dan PHP-FPM
- Ubuntu
sudo apt install php php-fpm php-mysql -y - Almalinux
sudo dnf install php php-fpm php-mysqlnd -y - Aktifkan PHP-FPM
sudo systemctl enable --now php-fpm
- Ubuntu
- Install Database Server
- Ubuntu
sudo apt install mysql-server -y - Almalinux
sudo dnf install mariadb-server -y
- Ubuntu
- Konfigurasi Virtual Host Backend (Node 1 & Node 2)
- Membuat Direktori Website
sudo mkdir -p /var/www/domainanda.com - Membuat File index.php
- Node 1

- Node 2

- Node 1
- Konfigurasi Server Block Nginx
- Masukkan perintah berikut
sudo nano /etc/nginx/conf.d/domainanda.com.conf - Isi konfigurasi berikut:
Untuk AlmaLinux, ganti socket PHP-FPM menjadi:server { listen 80; server_name domainanda.com; root /var/www/domainanda.com; index index.php index.html; location / { try_files $uri $uri/ /index.php?$query_string; } location ~ \.php$ { include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_pass unix:/var/run/php/php-fpm.sock; } }
fastcgi_pass unix:/run/php-fpm/www.sock; -
Uji dan restart Nginx:
sudo nginx -t sudo systemctl restart nginx
- Masukkan perintah berikut
- Membuat Direktori Website
Instalasi Nginx di Load Balancer
Lakukan di server Load Balancer.
- Install Nginx
- Ubuntu :
sudo apt update sudo apt install nginx -y - Almalinux
sudo dnf install nginx -y - Aktifkan Nginx:
sudo systemctl enable --now nginx
- Ubuntu :
- Konfigurasi Load Balancing Nginx
- Membuat File Konfigurasi Load Balancer
sudo nano /etc/nginx/conf.d/lb-domainanda.com.conf - Load Balancing Round Robin (Default)
upstream backend_servers { server BACKEND_IP_1; server BACKEND_IP_2; } server { listen 80; server_name domainanda.com; location / { proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://backend_servers; } } - Least Connections
upstream backend_servers { least_conn; server BACKEND_IP_1; server BACKEND_IP_2; } - IP Hash
upstream backend_servers { ip_hash; server BACKEND_IP_1; server BACKEND_IP_2; } - Weighted Load Balancing
upstream backend_servers { server BACKEND_IP_1 weight=3; server BACKEND_IP_2 weight=1; }
- Membuat File Konfigurasi Load Balancer
Pengujian Load Balancing
Lakukakan pada server Reverse Proxy :
- Jalan kan perintah berikut
sudo nginx -t sudo systemctl restart nginx - Uji dengan browser atau terminal:
curl http://domainanda.comOutput :

Kesimpulan
Konfigurasi load balancing menggunakan Nginx merupakan solusi efektif untuk meningkatkan performa dan kestabilan website. Dengan membagi beban ke beberapa backend server, sistem menjadi lebih andal, scalable, dan siap menghadapi lonjakan trafik.


