Nginx memiliki sebuah fitur yang disebut dengan Reverse Proxy yaitu sebuah fitur yang memungkinkan kita memiliki satu server frontend atau controller, dan backend dibelakang server controller, nantinya server yang menerima permintaan client adalah frontend/controller kemudian akan diteruskan menuju salah satu server backend tergantung permintaan client.
Kali ini saya akan mengkonfigurasi Reverse Proxy Nginx berdasarkan topologi dibawah ini :
Sekian terima kasih.
Kali ini saya akan mengkonfigurasi Reverse Proxy Nginx berdasarkan topologi dibawah ini :
Topologi
Terdapat satu server controller dan dua server backend, jika client mengakses www.network.dz/node01 maka akan diarahkan pada server backend #1 begitu pula untuk /node02.Server Controller
- Pastikan server ini sudah terinstall nginx sebelumnya, jika belum bisa lihat postingan saya yang ini.
- Setelah server sudah terinstall nginx, buka kembali file konfigurasi /etc/nginx/nginx.conf. Catatan : server ini sudah saya konfigurasi SSL sebelumnya, jika tidak ingin menggunakan SSL abaikan dan ganti beberapa sintaks.
- Cek sintaks konfigurasi.
- Restart nginx untuk memperbarui konfigurasi.
[root@m1-dz ~]# vi /etc/nginx/nginx.conf #Cari bagian server {} server { listen 443 ssl; #ganti menjadi 80 dan hapus SSL jika tidak ingin mengaktifkan SSL #listen [::]:80 default_server; server_name www.network.dz; root /usr/share/nginx/html; #abaikan tulisan merah ini jika tidak ingin mengaktifkan SSL ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_prefer_server_ciphers on; ssl_ciphers ECDHE+RSAGCM:ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:!aNULL!eNull:!EXPORT:!DES:!3DES:!MD5:!DSS; ssl_certificate /etc/pki/tls/certs/web-cert.crt; ssl_certificate_key /etc/pki/tls/private/web-key.key; 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; # Load configuration files for the default server block. include /etc/nginx/default.d/*.conf; location /node01 { #untuk /node01 mengarah ke node01.network.dz proxy_pass http://node01.network.dz/; } location /node02 { proxy_pass http://node02.network.dz/; }
[root@m1-dz ~]# nginx -t nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
[root@m1-dz ~]# systemctl restart nginx
Server node01 & node02
- Pada kedua server ini tidak ada konfigurasi khusus yang dilakukan, bahkan jika kedua server ini menggunakan apache tidak menjadi masalah, cukup install web server apache/nginx biasa pada kedua server ini.
- Contoh file konfigurasi nginx /etc/nginx/nginx.conf pada kedua server ini.
- Buat file index.html pada kedua server tersebut.
#Server Node01 [root@node01 ~]# vi /etc/nginx/nginx.conf server { listen 80 default_server; listen [::]:80 default_server; server_name node01.network.dz; #sesuai dengan subdomain server root /usr/share/nginx/html; # Load configuration files for the default server block. include /etc/nginx/default.d/*.conf; location / { } #Server Node02 [root@node02 ~]# vi /etc/nginx/nginx.conf server { listen 80 default_server; listen [::]:80 default_server; server_name node02.network.dz; #sesuai dengan subdomain server root /usr/share/nginx/html; # Load configuration files for the default server block. include /etc/nginx/default.d/*.conf; location / { } #Bisa dilihat tidak ada konfigurasi khusus pada kedua server.
[root@node01 ~]# vi /usr/share/nginx/html/index.html <h1>NODE01 Server BACKEND #1</h1> <h2>node01.network.dz</h2> [root@node02 ~]# vi /usr/share/nginx/html/index.html <h1>NODE02 Server BACKEND #2</h1> <h2>node02.network.dz</h2>
Testing Client
Setelah semua konfigurasi selesai kita testing lewat client.- Untuk node01
- Untuk node02
Sekian terima kasih.
Komentar
Posting Komentar