Nginx Load Balancing di Proxmox Server

Konfigurasi Load Balancing Nginx di lingkungan Proxmox VE (Virtual Environment) pada dasarnya adalah konfigurasi Nginx standar di sistem operasi Linux yang berjalan di salah satu Mesin Virtual (VM) atau Container di Proxmox, yang kemudian mengarahkan traffic ke beberapa VM/Container web server backend lainnya.

Berikut adalah langkah-langkah umum untuk mengkonfigurasi Nginx sebagai load balancer:

1. Persiapan Server Backend (di Proxmox)

Pastikan Anda memiliki minimal dua (atau lebih) server web (VM atau Container) di Proxmox yang menjalankan aplikasi atau konten web yang sama. Catat Alamat IP dan Port dari setiap server backend ini (misalnya, 192.168.1.10:80 dan 192.168.1.11:80).

2. Instalasi Nginx (di VM/Container Load Balancer)

Buat satu VM/Container baru di Proxmox yang akan bertindak sebagai Load Balancer. Instal Nginx di dalamnya. Untuk distribusi berbasis Debian/Ubuntu, gunakan perintah:

Bash
sudo apt update
sudo apt install nginx -y

3. Konfigurasi Nginx Load Balancing

Akses file konfigurasi utama Nginx. Lokasi umumnya adalah /etc/nginx/nginx.conf atau Anda dapat membuat file konfigurasi terpisah di /etc/nginx/conf.d/ (misalnya, loadbalancer.conf).

A. Tambahkan Blok upstream

Di dalam blok http { ... } pada file konfigurasi Nginx, tambahkan blok upstream untuk mendefinisikan kelompok server backend:

Nginx
http {
    # ... konfigurasi http lainnya

    upstream backend_servers {
        # Metode default: Round Robin (permintaan didistribusikan bergantian)
        server 192.168.1.10:80;  # IP dan Port Server Backend 1
        server 192.168.1.11:80;  # IP dan Port Server Backend 2
        # Tambahkan server lain jika ada

        # Contoh metode lain (pilih salah satu, atau biarkan default Round Robin):
        # least_conn;  # Least Connections: kirim ke server dengan koneksi paling sedikit
        # ip_hash;     # IP Hash: pastikan permintaan dari IP klien yang sama selalu ke server yang sama
    }

    # ... konfigurasi http lainnya
}

B. Konfigurasi Blok server untuk Reverse Proxy

Kemudian, di dalam blok server { ... }, atur Nginx untuk meneruskan (proxy) permintaan ke kelompok upstream yang baru Anda definisikan:

Nginx
server {
    listen 80;
    server_name your_domain.com; # Ganti dengan nama domain atau IP Load Balancer Anda

    location / {
        proxy_pass http://backend_servers;
        
        # Header yang penting untuk meneruskan informasi klien yang sebenarnya
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        
        # Tambahan jika menggunakan websockets (misalnya untuk Proxmox VNC)
        # proxy_http_version 1.1;
        # proxy_set_header Upgrade $http_upgrade;
        # proxy_set_header Connection "upgrade";
    }
}

4. Uji dan Terapkan Konfigurasi

  1. Uji Konfigurasi:

    Bash
    sudo nginx -t
    

    Pastikan tidak ada kesalahan (syntax is ok, test is successful).

  2. Restart/Reload Nginx:

    Bash
    sudo systemctl restart nginx
    # atau
    sudo systemctl reload nginx
    
  3. Akses alamat IP atau domain dari Nginx Load Balancer Anda di browser. Permintaan seharusnya didistribusikan ke server backend yang berbeda sesuai dengan metode load balancing yang Anda pilih (defaultnya Round Robin).

Metode Load BalancingDeskripsi
Round Robin (Default)Permintaan didistribusikan secara berurutan dan bergantian ke setiap server.
Least ConnectionsPermintaan dikirim ke server yang memiliki koneksi aktif paling sedikit.
IP HashMenggunakan alamat IP klien untuk menentukan server, memastikan klien yang sama selalu diarahkan ke server yang sama (berguna untuk session persistence).

Anda dapat melihat lebih lanjut tentang cara Nginx dapat berfungsi sebagai load balancer di Linux. NGINX Load Balancer | Cara Membagi Beban Server Menggunakan NGINX | Implementasi High Availability menjelaskan konsep dan implementasi load balancing Nginx, yang dapat diterapkan pada VM atau Container di Proxmox.

|
Scroll to top
Code Copied!