Assalamu'alaikum Wr Wb,
Kali ini saya akan melanjutkan materi dari Web Server Nginx, yaitu Konfigurasi Reverse Proxy Pass Pada Web Server Nginx, atau lebih tepatnya yaitu tentang Backend.
Backend ini seolah-olah kita mempunyai Web Server di belakang Server yang kita akses. Jadii, server yang ada di depan Server Backend bisa dibilang juga sebagai controller dari Web Server dibelakangnya.
Topologi :
Sesuai topologi pada gambar diatas, saya memiliki satu server backend (node 1) sebagai Web Server. Cara kerjanya begini, Jadi pada saat client merequest halaman Website ke Controller, konten web tersebut sebenarnya tidak ada pada controller, tetapi ada pada node. Jadi controller bertugas untuk meneruskan request client ke node1 dan node1 meneruskan konten website sebagai hasil dari request ke client.
Konfigurasi : Server Controller
1). Pertama, edit terlebih dulu file zona forward yang sudah kalian buat
nano /var/named/forward.dirham
lalu tambahkan nama host baru untuk si node1 nya dengan disertakan IP Address si node1 tersebut.
2). edit juga di bagian reverse nya untuk menangkap IP Address si node1 kedalam domain node1.dirham.net.
nano /var/named/reverse.dirham
tambahkan dulu pada reverse nya yaitu skrip node1 IN A 10.10.10.24 dan dilanjutkan dengan menambahkan reverse IP nya yaitu skrip yang berwarna kuning.
3). jangan lupa untuk merestart si named nya untuk memperbarui konfigurasi barusan.
systemctl restart named
4). Kemudian edit file konfigurasi Web server Nginx, disini saya mengeditnya di file konfigurasi virtual host yang sudah dibuat pada lab sebelumnya.
nano /etc/nginx/conf.d/dirham-vhost.conf
5). tambahkan skrip pendukung untuk Proxy Pass nya seperti yang sudah saya tandakan berwarna kuning. berikut ini adalah skrip nya : (btw kalau sudah menambahkan skrip dibawah ini, jangan langsung disave dulu, soalnya masih ada skrip yang harus ditambahin lagi pada file ini, sekedar info ye)
Keterangan :
- proxy_redirect digunakan untuk mengubah Response Header Location dan Refresh pada Respon Server. Tetapi pada pambar diatas saya mengaturnya menjadi off yang berarti saya tidak menggunakan proxy_redirect ini
- $http_host berfungsi untuk Menetapkan header "Host" ke header "Host" dari permintaan client. 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 membuat keputusan atau log berdasarkan informasi ini.
- X-Forwarded-For merupakan 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 merupakan identifikasi Nama server yang dicari di antara kelompok server yang ada, dan jika nama server nya tidak ditemukan, maka akan ditentukan dengan menggunakan resolver.
6). lalu tambahkan skrip berikut yang sudah saya tandai warna kuning pada blok location / { , masih pada file konfigurasi yang tadi ya coy.
Keterangan :
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 menjadi ke domain dari node1
systemctl restart nginx
Konfigurasi : Server Node1
1). Selanjutnya, kita edit file index.html yang digunakan untuk konten Web Ngingx yang secara default terletak pada direktori /usr/share/nginx/html/
nano /usr/share/nginx/html/index.html
2). lalu isikan skrip html nya seperti biasa sesuai selera, asalkan nati nongolnya sesuai dengan skrip yang kalian buat :v
3). jangan lupa juga untuk di restart nginx si node1 nya, untuk memperbarui konfigurasi barusan.
systemctl restart nginx
4). lalu cobalah untuk mengakses domain dari virtual host anda, dan usahakan berhasil menangkap konten html dari server node1, good luck!
No comments:
Post a Comment