Cara Setting Load balance dengan Nginx
Server STB – Load balance adalah sebuah mekanisme untuk membagi atau mendistribusikan trafik ke beberapa server. Nginx selain berfungsi sebagai web server bisa juga berfungsi sebagai load balancer.
Metode Load Balance
- Round Robin: mendistribusikan trafik ke setiap server secara bergantian.
- Least Connections: mendistribusikan trafik ke server yang paling sedikit koneksi aktifnya.
- IP Hash: mendistribusikan trafik ke server yang sama ketika visitor pertama kali melakukan request.
1.Perangkat yang digunakan
Perangkat yang digunakan di tutorial ini:
- OS Ubuntu 18.04 LTS
- Nginx web server
- PHP-FPM 7.2
- Node1: 10.130.127.167
- Node2: 10.130.128.35
- LoadBalancer: 128.199.187.215
- Domain: defnex.com
2.Install Nginx dan PHP-FPM di Node
Install Nginx di Node1 dan Node2.
-
sudo apt install nginx php php-fpm -y
-
sudo systemctl status nginx
-
sudo systemctl status php7.2-fpm
sudp mkdir /var/www/serverstb.com
sudo echo "<h1>node1</h1>" > /var/www/defnex.com/index.php
sudo mkdir /var/www/serverstb.com
sudo echo "<h1>node2</h1>" > /var/www/serverstb.com/index.php
Membuat server block di Node1 dan Node2.
sudo nano /etc/nginx/conf.d/serverstb.com.conf
server { listen 80; server_name defnex.com www.serverstb.com; root /var/www/defnex.com/; index index.php index.html index.htm; location / { try_files $uri $uri/ /index.php?$query_string; } location ~ \.php$ { try_files $fastcgi_script_name =404; include fastcgi_params; fastcgi_pass unix:/var/run/php/php7.2-fpm.sock; fastcgi_index index.php; fastcgi_param DOCUMENT_ROOT $realpath_root; fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name; } access_log /var/log/nginx/serverstb.com.access.log; error_log /var/log/nginx/serverstb.com.error.log warn; }
sudo nginx -t
sudo systemctl restart nginx
sudo systemctl status nginx
3.Install dan Konfigurasi Nginx di Load Balancer
Install Nginx.
sudo apt install nginx -y
sudo systemctl status nginx
Membuat server block untuk load balancing domain defnex.com.
sudo nano /etc/nginx/conf.d/lb-serverstb.com.conf
File konfigurasi server block load balancing domain defnex.com.
upstream backend { server 10.130.127.167; #node1 server 10.130.128.35; #node2 } server { listen 80; server_name serverstb.com www.serverstb.com; location / { proxy_redirect off; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_pass http://backend; } }
Pada konfigurasi upstream backend dituliskan IP address dari backend server. Secara default metode load balancing yang digunakan adalah Round Robin.
Konfigurasi load balancing jika menggunakan metode Least Connections.
upstream backend { least_conn; server 10.130.127.167; #node1 server 10.130.128.35; #node2 }
Konfigurasi load balancing jika menggunakan metode IP Hash.
upstream backend {
ip_hash;
server 10.130.127.167; #node1
server 10.130.128.35; #node2
}
Uji dan restart Nginx.
sudo nginx -t
sudo systemctl restart nginx
sudo systemctl status nginx
4.Pengujian
Browse domain berulang kali, akan menampilkan halaman dari Node1 dan Node2 secara bergantian.
Semoga artikel ini membantu anda lebih memahami. Jangan sungkan tinggalkan komentar di bawah jika anda memiliki pertanyaan. Sampai jumpa di artikel selanjutnya.
Sumber : https://musaamin.web.id/cara-setting-load-balancing-dengan-nginx/