Judul : [Lab 8.19] Reverse Proxy load balance di Nginx pada CentOS 7
link : [Lab 8.19] Reverse Proxy load balance di Nginx pada CentOS 7
[Lab 8.19] Reverse Proxy load balance di Nginx pada CentOS 7
Kali ini saya akan membahas tentang load balance reverse proxy, materi ini tidak jauh berbeda dengan reverse proxy pada umumnya yaitu fitur pada nginx yang memungkinkan terdapat server controller (frontend/proxy) dan backend (web server sesungguhnya). Server Controller bertugas untuk menerima permintaan dari client kemudian permintaan tersebut akan diteruskan pada server backend.Perbedaannya pada kali ini jumlah server backend nya lebih dari satu dan akan kita konfigurasi load balance, agar server controller dapat meneruskan permintaan ke server backend secara merata dan bergantian, misalnya pada permintaan pertama ada di node1, dan untuk yang kedua akan ke node2, kemudian saya akan tambahkan yang node3 sebagai backup jika node1 dan node2 mati.
Controller
Server ini yang akan menjadi server proxy frontend, tugasnya untuk menerima permintaan dari client kemudian akan meneruskannya pada server-server backend.Kita lakukan konfigurasi IP Address pada server ini agar dapat terhubung dengan jaringan, buka file konfigurasi interface yang ada di /etc/sysconfig/network-scripts/ifcfg-enp0s3.
[root@dz-nginx-ct ~]# vi /etc/sysconfig/network-scripts/ifcfg-enp0s3
- Kemudian kita ubah dan tambahkan beberapa isinya sesuai jaringan yang kita pakai.
TYPE=Ethernet
BOOTPROTO=static
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
NAME=enp0s3
UUID=2bc33e21-067b-4a2f-a8b3-b90db29177eb
DEVICE=enp0s3
ONBOOT=yes
IPADDR=192.168.56.40
NETMASK=255.255.255.0
GATEWAY=192.168.56.1
DNS1=192.168.56.40
DNS2=8.8.8.8
EPEL Repo
Karena nginx terdapat pada repo epel kita harus menginstall repo epel pada server centos yang kita konfigurasi ini.Pertama kita install aplikasi wget untuk mendownload sesuatu.
[root@dz-nginx-ct ~]# yum -y install wgetDan kemudian kita download paket untuk menginstall repo epel pada situs resminya.
[root@dz-nginx-ct ~]# wget http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-9.noarch.rpmInstall paket installasi tersebut.
[root@dz-nginx-ct ~]# rpm -ivh epel-release-7-9.noarch.rpm
Install Nginx
Kita install aplikasi nginx dari repositori epel.[root@dz-nginx-ct ~]# yum --enablerepo=epel -y install nginxBuka firewall untuk layanan http agar dapat diakses dari luar.
[root@dz-nginx-ct ~]# firewall-cmd --permanent --add-port=80/tcpEdit file konfigurasi default web site dari nginx untuk menambahkan beberapa script agar dapat melakukan load balance.
[root@dz-nginx-ct ~]# firewall-cmd --permanent --add-port=443/tcp
[root@dz-nginx-ct ~]# firewall-cmd --reload
[root@dz-nginx-ct ~]# nano /etc/nginx/nginx.conf
- Tambahkan script ini dibagian http {}. Isinya adalah domain dari server-server backend, tulisan weight ini nilai barancing server tersebut, dan backup merupakan server cadangan jika sisanya mati.
http {
upstream kaumterbelakang {
server node1.centos.dz:80 weight=3;
server node2.centos.dz:80;
server node3.centos.dz:80 backup;
}
server {Aktifkan layanan nginx dan juga enable agar langsung berjalan ketika server dinyalakan.
listen 80 default_server;
listen [::]:80 default_server;
server_name www.centos.dz;
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
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;
location / {
proxy_pass http://kaumterbelakang/;
}
[root@dz-nginx-ct ~]# systemctl start nginx
[root@dz-nginx-ct ~]# systemctl enable nginx
Node1
Server ini merupakan server backend konfigurasi server hanya menginstall nginx biasa kemudian diisi dengan beberapa konten website.pertama konfigurasi IP Address agar dapat terhubung dengan jaringan :[root@dz-nginx-node1 ~]# vi /etc/sysconfig/network-scripts/ifcfg-enp0s3
TYPE=Ethernet
BOOTPROTO=static
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
NAME=enp0s3
UUID=2bc33e21-067b-4a2f-a8b3-b90db29177eb
DEVICE=enp0s3
ONBOOT=yes
IPADDR=192.168.56.41
NETMASK=255.255.255.0
GATEWAY=192.168.56.1
DNS1=192.168.56.40
DNS2=8.8.8.8
EPEL Repo
Karena nginx hanya ada direpositori EPEL maka kita perlu mengaktifkan repo epel pada server ini. jalankan perintah-perintah dibawah ini. Kita install wget untuk mendownload paket epel nantinya :[root@dz-nginx-node1 ~]# yum -y install wgetKemudian kita download paket untuk mengaktifkan epel di situs resminya.
[root@dz-nginx-node1 ~]# wget http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-9.noarch.rpmLalu install repositori epel.
[root@dz-nginx-node1 ~]# rpm -ivh epel-release-7-9.noarch.rpm
Install Nginx
Kita install aplikasi nginx, dengan mengaktifkan repo epel.[root@dz-nginx-node1 ~]# yum --enablerepo=epel -y install nginxKemudian kita jalankan layanan nginx dan juga enable agar langsung aktif ketika server dinyalakan.
[root@dz-nginx-node1 ~]# systemctl start nginxBuka firewall untuk layanan http agar server dapat diakses dari luar.
[root@dz-nginx-node1 ~]# systemctl enable nginx
[root@dz-nginx-node1 ~]# firewall-cmd --permanent --add-port=80/tcpKemudian kita edit file HTML yang ada di direktori /usr/share/nginx/index.html.
[root@dz-nginx-node1 ~]# firewall-cmd --permanent --add-port=443/tcp
[root@dz-nginx-node1 ~]# firewall-cmd --reload
[root@dz-nginx-node1 ~]# rm /usr/share/nginx/html/index.html
rm: remove regular file ‘/usr/share/nginx/html/index.html’? y
[root@dz-nginx-node1 ~]# nano /usr/share/nginx/html/index.html
- Isi file index.html dengan beberapa html.
<H1>NODE1.CENTOS.DZ</H1>
<h2>Dzikra Fathin</h2>
Node2
Server ini merupakan server backend konfigurasi server hanya menginstall nginx biasa kemudian diisi dengan beberapa konten website.pertama konfigurasi IP Address agar dapat terhubung dengan jaringan :[root@dz-nginx-node2 ~]# vi /etc/sysconfig/network-scripts/ifcfg-enp0s3
TYPE=Ethernet
BOOTPROTO=static
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
NAME=enp0s3
UUID=2bc33e21-067b-4a2f-a8b3-b90db29177eb
DEVICE=enp0s3
ONBOOT=yes
IPADDR=192.168.56.42
NETMASK=255.255.255.0
GATEWAY=192.168.56.1
DNS1=192.168.56.40
DNS2=8.8.8.8
EPEL Repo
Karena nginx hanya ada direpositori EPEL maka kita perlu mengaktifkan repo epel pada server ini. jalankan perintah-perintah dibawah ini. Kita install wget untuk mendownload paket epel nantinya :[root@dz-nginx-node2 ~]# yum -y install wgetKemudian kita download paket untuk mengaktifkan epel di situs resminya.
[root@dz-nginx-node2 ~]# wget http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-9.noarch.rpmLalu install repositori epel.
[root@dz-nginx-node2 ~]# rpm -ivh epel-release-7-9.noarch.rpm
Install Nginx
Kita install aplikasi nginx, dengan mengaktifkan repo epel.[root@dz-nginx-node2 ~]# yum --enablerepo=epel -y install nginxKemudian kita jalankan layanan nginx dan juga enable agar langsung aktif ketika server dinyalakan.
[root@dz-nginx-node2 ~]# systemctl start nginxBuka firewall untuk layanan http agar server dapat diakses dari luar.
[root@dz-nginx-node2 ~]# systemctl enable nginx
[root@dz-nginx-node2 ~]# firewall-cmd --permanent --add-port=80/tcpKemudian kita edit file HTML yang ada di direktori /usr/share/nginx/index.html.
[root@dz-nginx-node2 ~]# firewall-cmd --permanent --add-port=443/tcp
[root@dz-nginx-node2 ~]# firewall-cmd --reload
[root@dz-nginx-node2 ~]# rm /usr/share/nginx/html/index.html
rm: remove regular file ‘/usr/share/nginx/html/index.html’? y
[root@dz-nginx-node2 ~]# nano /usr/share/nginx/html/index.html
- Isi file index.html dengan beberapa html.
<H1>NODE2.CENTOS.DZ</H1>
<h2>Dzikra Fathin</h2>
Node3
Server ini merupakan server backend konfigurasi server hanya menginstall nginx biasa kemudian diisi dengan beberapa konten website.pertama konfigurasi IP Address agar dapat terhubung dengan jaringan :[root@dz-nginx-node3 ~]# vi /etc/sysconfig/network-scripts/ifcfg-enp0s3
TYPE=Ethernet
BOOTPROTO=static
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
NAME=enp0s3
UUID=2bc33e21-067b-4a2f-a8b3-b90db29177eb
DEVICE=enp0s3
ONBOOT=yes
IPADDR=192.168.56.43
NETMASK=255.255.255.0
GATEWAY=192.168.56.1
DNS1=192.168.56.40
DNS2=8.8.8.8
EPEL Repo
Karena nginx hanya ada direpositori EPEL maka kita perlu mengaktifkan repo epel pada server ini. jalankan perintah-perintah dibawah ini. Kita install wget untuk mendownload paket epel nantinya :[root@dz-nginx-node3 ~]# yum -y install wgetKemudian kita download paket untuk mengaktifkan epel di situs resminya.
[root@dz-nginx-node3 ~]# wget http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-9.noarch.rpmLalu install repositori epel.
[root@dz-nginx-node3 ~]# rpm -ivh epel-release-7-9.noarch.rpm
Install Nginx
Kita install aplikasi nginx, dengan mengaktifkan repo epel.[root@dz-nginx-node3 ~]# yum --enablerepo=epel -y install nginxKemudian kita jalankan layanan nginx dan juga enable agar langsung aktif ketika server dinyalakan.
[root@dz-nginx-node3 ~]# systemctl start nginxBuka firewall untuk layanan http agar server dapat diakses dari luar.
[root@dz-nginx-node3 ~]# systemctl enable nginx
[root@dz-nginx-node3 ~]# firewall-cmd --permanent --add-port=80/tcpKemudian kita edit file HTML yang ada di direktori /usr/share/nginx/index.html.
[root@dz-nginx-node3 ~]# firewall-cmd --permanent --add-port=443/tcp
[root@dz-nginx-node3 ~]# firewall-cmd --reload
[root@dz-nginx-node3 ~]# rm /usr/share/nginx/html/index.html
rm: remove regular file ‘/usr/share/nginx/html/index.html’? y
[root@dz-nginx-node3 ~]# nano /usr/share/nginx/html/index.html
- Isi file index.html dengan beberapa html.
<H1>NODE3.CENTOS.DZ</H1>Kita testing mengakses server controller.
<h2>Dzikra Fathin</h2>
- Saat pertama kali.
- Yang kedua kalinya.
- Kita coba matikan server node1 dan node2
Dan kemudian kita coba akses kembali web servernya.
[root@dz-nginx-node1 ~]# init 0
[root@dz-nginx-node2 ~]# init 0
Demikianlah Artikel [Lab 8.19] Reverse Proxy load balance di Nginx pada CentOS 7
Sekianlah artikel [Lab 8.19] Reverse Proxy load balance di Nginx pada CentOS 7 kali ini, mudah-mudahan bisa memberi manfaat untuk anda semua. baiklah, sampai jumpa di postingan artikel lainnya.
Anda sekarang membaca artikel [Lab 8.19] Reverse Proxy load balance di Nginx pada CentOS 7 dengan alamat link https://anothers-stuff.blogspot.com/2017/05/lab-819-reverse-proxy-load-balance-di.html