[CentOS 7] [8.18] Reverse Proxy Pass Pada Nginx

Konfigurasi Reverse Proxy Pass Pada Web Server Nginx



Assalamu'alaikum Wr Wb

Whatsup guys, kembali lagi dengan saya Dimas Trihandika selaku Admin dari blog ini yang pada kesempatan kali ini hanya ingin sharing saja mengenai tutorial Konfigurasi Reverse Proxy Pass Pada Web Server Nginx.

Materi kita kali ini masih sama mengenai Web Server Nginx, lebih tepatnya yaitu tentang Backend. 

Backend ini seolah olah kita mempunya Web Server di belakang Server yang kita akses. Jadi, server yang ada di depan Backend bisa dibilang sebagai controllernya.

Topology :



Sesuai topologi diatas, saya memiliki satu server backend (node1) sebagai Web server. Cara kerjanya adalah pada saat client merequest halaman website pada controller, konten tersebut sebenarnya tidak ada pada controller, tapi ada pada node. Jadi controller meneruskan request client ke node1 dan meneruskan konten website sebagai hasil dari request ke client.

Sebelum memulai konfigurasi, pastikan kedua server telah terinstal nginx.

Langkah Konfigurasi :

Konfigurasi Server Controller


Sebelum konfigurasi Reverse Proxy Pass, edit terlebih dahulu file konfigurasi DNS pada zona forward dan juga zona reverse untuk menambahkan domain node1

1) Pertama edit terlebih dahulu zona forward yang sudah kalian buat
nano /var/named/"forward zone name"

Tambahkan syntak sesuai dengan yang sudah saya tandai pada gambar dibawah ini dan jangan lupa sesuaikan IP nya


2) Setelah itu edit pula zona reversnya
nano /var/named/"reverse zone name"

Tambahkan syntak seperti yang sudah saya tandai pada gambar dibawah ini. Sesuaikan nama domain serta IPnya


3) Restart service DNS agar konfigurasi yang baru berjalan
systemctl restart named

4) Lakukan perintah dig untuk pengetesan domain node1.
dig "nama domain"


5) Edit file konfigurasi Web Server Nginx, disini saya mengeditnya di file konfigurasi Virtual host yang sudah saya buat pada lab sebelumnya


6) Kemudian tambahkan syntak seperti yang sudah saya tandai berwarna biru pada gambar dibawah ini. jangan lupa sesuaikan peletakannya


proxy_redirect digunakan untuk mengubah Response Header Location dan Refresh pada Respon Server. Namun pada pambar diatas saya mengaturnya menjadi off yang menandakan tidak menggunakan proxy_redirect

$http_host berfungsi untuk Menetapkan header "Host" ke header "Host" dari permintaan klien. Header yang dikirim oleh client selalu tersedia di Nginx sebagai variabel. Variabel akan dimulai dengan awalan $http_, diikuti oleh nama header dalam huruf kecil, dengan tanda hubung digantikan oleh garis bawah.

proxy_set_header digunakan untuk menyesuaikan atau mengatur header untuk koneksi proxy. Misalnya untuk mengganti header "Host" dan menambahkan beberapa header tambahan yang umum dengan permintaan proxy

X-Real-IP merupakan IP client sehingga proxy dapat benar membuat keputusan atau log berdasarkan informasi ini.

X-Forwarded-For adalah daftar yang berisi alamat IP dari setiap server yang telah diprogramkan client sampai saat ini. Pada contoh di atas, saya menetapkan variabel $proxy_add_x_forwarded_for . Variabel ini mengambil nilai dari header X-Forwarded-For asli yang diambil dari client dan menambahkan alamat IP server Nginx sampai akhir.

proxy_pass_header yaitu identifikasi Nama server yang dicari di antara kelompok server yang ada, dan jika tidak ditemukan, ditentukan dengan menggunakan resolver. 

7) Masih di file konfigurasi Nginx, cari syntak location { kemudian tambahkan syntak seperti yang sudah saya tandai pada gambar dibawah ini. Atur pelatakannya sebelum tanda kurwal tutup ("}")


proxy_pass digunakan untuk menetapkan alamat server proxied dan URI ke lokasi mana yang akan dipetakan. Lokasi yang dimaksud dapat berupa Cluster, Domain ataupun IP Address. Pada gambar diatas saya mengaturnya ke domain dari node1

8) Restart Service Nginx agar konfigurasi yang baru berjalan



Konfigurasi node1


1) Disini node1 saya konfigurasi nginxnya masih seperti default. Maka dari itu edit file index.html untuk konten Web Nginx yang secara defaultnya terletak di directory /usr/share/nginx/html
nano /usr/shre/nginx/html/index.html

2) Edit isi file indexnya sesuka kalian saja


Verifikasi Client


1) Lakukan pengetsan pada Web browser client dengan cara mengakses server controller. Maka nanti akan ditampilkan konten web yang terdapat di server node1.





Mungkin cukup sekian untuk postingan kali ini, saya tutup..

Semoga Bermanfaat

Comments