Lompat ke konten Lompat ke sidebar Lompat ke footer

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

Konfigurasi Nginx Reverse Proxy pada CentOS 7

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 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/;
        }
3. Cek sintaks konfigurasi.
[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
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.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.
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
Konfigurasi Nginx Reverse Proxy pada CentOS 7

Untuk node02
Konfigurasi Nginx Reverse Proxy pada CentOS 7

Cukup sampai disini postingan saya kali ini,

Sekian terima kasih.
Student Terpelajar
Student Terpelajar Content Creator, Video Creator and Writer

Posting Komentar untuk "Konfigurasi Nginx Reverse Proxy pada CentOS 7"