Menggunakan Nginx Reserve Proxy Untuk Multiple Server

Dalam beberapa kasus kita memerlukan skema khusus untuk membelokkan jalur trafic dari sebuah web ke server lain. Dalam sebuah kasus sederhana kita hanya memiliki 1 ip public dan memilki lebih dari satu server. Kita asumsikan server utama dengan domain misbahulihsan.info kemudian ada 2 sub domain web1.misbahulihsan.info juga web1.misbahulihsan.info.

misbahulihsan.info [ server utama ]
ip public : 202.222.134.101
ip local : 192.168.10.200
web server : nginx

web1.misbahulihsan.info [ sub domain server 1 ]
ip local : 192.168.10.201
web server : apache

web2.misbahulihsan.info [ sub domain server 2 ]
ip local : 192.168.10.202
web server : nginx

Karena sub domain tetap mengarahkan ke ip ke server utama, maka trafic tetap masuk kedalam server utama. Padahal aplikasi atau service yang berjalan berada pada server lain di jaringan local, maka kita perlu peran nginx di server utama sebagai reserve proxy. Jadi kita bisa mengibaratkan Nginx di server utama sebagai gateway ke server local yang nantinya akan mengembalikan request ke server utama dari server local kemudian mengembalikan kembali kepada user.

Pertama, pastikan kita sudah melakukan remote server utama / ssh ke server utama. Pastikan service nginx sudah sesuai dengan mengetikkan ngginx -t pada terminal.

nginx -t

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

atau pastikan service nginx sudah berjalan.

/etc/init.d/nginx status
OR
service nginx status

Kemudian edit file proxy_params

nano /etc/nginx/proxy_params

pastikan baris kode berikut sudah terdapat didalamnya, jika belum maka silahkan sesuaikan.

proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;


client_max_body_size 100M;
client_body_buffer_size 1m;
proxy_intercept_errors on;
proxy_buffering on;
proxy_buffer_size 128k;
proxy_buffers 256 16k;
proxy_busy_buffers_size 256k;
proxy_temp_file_write_size 256k;
proxy_max_temp_file_size 0;
proxy_read_timeout 300;

selanjutnya adalah melakukan perubahan konfigurasi dari server blok sub domain web1.misbahulihsan.info

nano /etc/nginx/sites-avalaible/web1.misbahulihsan.info

pastikan baris kodenya seperti ini.

server {

      root /var/www/html;

      # Add index.php to the list if you are using PHP
      index index.html index.htm index.nginx-debian.html;

      server_name web1.misbahulihsan.info www.web1.misbahulihsan.info;

      location / {
        proxy_pass http://192.168.10.201;
        include /etc/nginx/proxy_params;
      }

    access_log /var/log/nginx/access.web1.misbahulihsan.info;
    error_log /var/log/nginx/error.web1.misbahulihsan.info;
}

Setelah semua hal tersebut kita lakukan, saatnya melakukan reload dan restart service nginx.

service nginx reload
service nginx restart

Jika settingan dilakukan benar, maka website sudah bisa diakses untuk sub domain server 1 maupun server 2. bagi yang belum mengetahui bagaimana proses menginstall nginx , bisa meryujuk tulisan Install Nginx Ubuntu Server 20.04 LTS.

One Comment

Add a Comment

Your email address will not be published. Required fields are marked *