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.
![](https://i0.wp.com/serverstb.com/wp-content/uploads/2022/05/2.jpg?resize=324%2C123&ssl=1)
![](https://i0.wp.com/serverstb.com/wp-content/uploads/2022/05/3.jpg?resize=353%2C134&ssl=1)
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/