Konfigurasi Nginx Reverse Proxy pada CentOS 7
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 :
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
1. Pastikan server ini sudah terinstall nginx sebelumnya, jika belum bisa lihat postingan saya yang ini.
2. 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.
[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 SSLssl_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.dzproxy_pass http://node01.network.dz/;}location /node02 {proxy_pass http://node02.network.dz/;}
3. Cek sintaks konfigurasi.
[root@m1-dz ~]# nginx -tnginx: the configuration file /etc/nginx/nginx.conf syntax is oknginx: configuration file /etc/nginx/nginx.conf test is successful
4. Restart nginx untuk memperbarui konfigurasi.
[root@m1-dz ~]# systemctl restart nginx
Server node01 & node02
1. 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.
2. Contoh file konfigurasi nginx /etc/nginx/nginx.conf pada kedua server ini.
#Server Node01[root@node01 ~]# vi /etc/nginx/nginx.confserver {listen 80 default_server;listen [::]:80 default_server;server_name node01.network.dz; #sesuai dengan subdomain serverroot /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.confserver {listen 80 default_server;listen [::]:80 default_server;server_name node02.network.dz; #sesuai dengan subdomain serverroot /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.
3. Buat file index.html pada kedua server tersebut.
[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
Cukup sampai disini postingan saya kali ini,
Sekian terima kasih.
Posting Komentar untuk "Konfigurasi Nginx Reverse Proxy pada CentOS 7"