Thursday 11 May 2017

LAB Centos 8.18 | NGINX | Reverse Proxy

Assalamualaikum wr.wb.

Yoo semuanyaa, gimana dengan postingan sebelumnya ? apakah sudah paham atau belum ?? kalau belom buka blog yang sebelumnya yaa guys... Yaps pada kesempatan kali ini ane ngeshare materi selanjutnya dari yang sebelumnya yaitu ...  Konfigurasi Reverse Proxy yang lebih tepatnya tentang backend



Jadi Backend itu seolah-olah kaya ada controllernya ya diibaratkan kita punya 1 server nah kalau takut diserang hacker maka kita akan menambahkan server controller didepannya. fungsinya buat apaa ? kalau diserang oleh hacker maka yang akan diserang siserver controllernya ini. ya intinya si server controllernya bertugas menjadi controller si web server tersebut.

Untuk topologinya sebagai berikut
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.

Yuk Capcus mari mari ke konfigurasinya guys ckckck

Controller
1.  Pertama, edit terlebih dulu file zona forward yang sudah kalian buat
"nano /var/named/'namazonaforward' "

Lalu tambahkan syntaks sesuai dengan yang sudah saya tandai pada gambar dibawah, dan jangan lupa untuk menyesuaikan IP nya pada topologi
2.  Kemudian edit juga file zona reverse nya 
"nano /var/named/'namazonareverse' "

Lalu tambahkan script seperti yang sudah saya tandai pada gambar dibawah, sesuaikan nama domain dan juga IP nya pada topologi

3. Setelah itu, restart service named agar konfigurasi yang sudah dilakukan bisa berjalan
"systemctl restart named"

4. Selanjutnya lakukan perintah dig untuk mengetes domain node1 apakah sudah berjalan atau belom

"dig 'namadomain' "

5. Kemudian edit file konfigurasi Web server Nginx, disini saya mengeditnya di file konfigurasi virtual host yang sudah dibuat pada lab sebelumnya


6. Lalu tambahkan syntax seperti yang sudah saya tandai pada gambar dibawah ini agar konfigurasi backend ini berjalan optimal

"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;
proxy_pass_header node1; #servername node"
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.


7. Masih di file konfigurasi yang sama, kita cari syntax location {, kemudian tambahkan syntax seperti yang sudah saya tandai pada gambar dibawah

"proxy_pass 'tujuanserver' "
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

8. Setelah itu restart service nginx agar konfigurasi yang sudah dilakukan bisa berjalan

Node
1. Selanjutnya, kita edit file index.html yang digunakan untuk konten Web Ngingx yang secara konfigurasi terletak pada direktori /usr/share/nginx/hafizi/
Isikan Script html sesuka kalian untuk halaman web html
Client

1. Sekarang kita coba buka web node1 dengan cara mengakses server controller. Maka akan muncul konten web yang terdapat di server node1 

Cukup sekian apabila ada kekurangan mohon dikomentar.
Wassalamualaikum wr.wb.


EmoticonEmoticon