{CentOS 7}{LAB 8.18} Reverse Proxy Pass pada Nginx
Assalamualaikum wr wb
Pada kesempatan kali ini saya akan melanjutkan pembahasan materi web server nginx, yang pada hal ini sudah masuk kedalam Reverse Proxy Pass.
Pada materi ini lebih tepatnya adalah Backend, Apa itu backend?
Backend ini seolah-olah kita mempunyai server di belakang server yang yang kita akses. Server yang didepan kita atau yang kita akses ini bisa disebut sebagai "Controller" nah kalau yang server backend(belakang server controller) itu bisa disebut sebagai "node1".
Topologi
Konfigurasi Server Controller
Sebelum kita masuk kedalam konfigurasi Reverse Proxy Pass, kita lakukan konfigurasi dns dulu karena ada sedikit penambahan baik ip maupun script lainnya.
1) Langkah pertama edit file zona forward yang sebelumnya sudah anda buat pada saat mengkonfigurasi dns.
nano /var/named/"namafileforward"
2) Lalu tambahkan syntaks sesuai dengan yang sudah saya tandai pada gambar dibawah, dan jangan lupa untuk menyesuaikan IP nya. Pada contoh ini server node1 nya masih dalam subnet yang sama dengan controller dan client, agar lebih mempermudah saja.
Jika sudah di tambahkan syntax pada tahap 2, maka hasil total file zona forward anda akan seperti ini
3) Selanjutnya kita lakukan pengeditan juga pada file zona reverse.
nano /var/named/"namafilereverse"
4) Lalu tambahkan syntaks sesuai dengan yang sudah saya tandai pada gambar dibawah, dan jangan lupa untuk menyesuaikan IP nya. Untuk domain web server node1 saya berikan domain node1.pandutama.net
5) Restart service named agar konfigurasi dns tadi berjalan dengan baik.
systemctl restart named
6) Selanjutnya lakukan pengetesan apakah domain node1 nya sudah bisa digunakan atau belum, disini saya melakukan pengetesan dengan perintah dig, Jika hasil output pada answer section ada angka dan domainnya itu berarti domain ini sudah dapat dijalankan.
dig node1.pandutama.net
7) 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/vhost.conf
8) Lalu tambahkan beberapa baris syntax proxy seperti yang sudah saya tandai pada gambar di bawah ini.
Penjelasan :
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.9) Masih pada file konfigurasi web server nginx yaitu file vhost.conf. Cari syntax location / { . Kemudian tambahkan syntax proxy pass seperti yang sudah saya tandai pada gambar dibawah ini
Penjelasan :
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) Edit file index tersebut dengan script html, atau anda bisa ikuti script pada gambar dibawah ini.
Verifikasi pada Client
1) Untuk pengujiannya, buka browser kemudian akses domain anda. Berikut ini terlihat bahwa pada saat saya mengakses domain www.pandutama.net, tampilan halaman web yang muncul malah tampilan yang saya konfigurasi pada file index punya domain node1. nah itulah yang dimaksud backend
Alhamdulilah berhasil
Semoga Bermanfaat
Wassalamualaikum wr wb
0 comments: