Assalamu'alaikum warahmatullah wabarakatuh
Kali ini saya akan share tentang Proxy Pass di Nginx. Pernah denger gini gak "proxy server itu cuman buat numpang lewat" ? Yap, kali ini saya ingin share tentang proxy server di centos. Alias server "numpang lewat". Berikut pengertian Proxy.
Pengertian Proxy dari beberapa web yang ane rangkum
- WikipediaProxy server (peladen proxy) adalah sebuah komputer server atau program komputer yang dapat bertindak sebagai komputer lainnya untuk melakukan request terhadap content dari Internet atau intranet.
- Dari Blognya si fulan
Proxy Server adalah server yang diletakkan antara suatu aplikasi client dan aplikasi server yang dihubungi. Aplikasi client dapat berupa browser web, client FTP, dan sebagainya. Sedangkan aplikasi server dapat berupa server web, server FTP dan sebagainya. - Menurut ane
Proxy Server adalah server yang berfungsi untuk memanage (meneruskan atau memblok) request dari client ke Internet.
Simak dulu topologi dibawah
Topologi ini bisa disebut juga Backend Server. Jadi ya si Server Controller nya yang akan menangani request dari client. Dan melempar request tersebut ke Web Server di belakang Controller.
Begini konsepnya
- Si Client Windows 10 (172.16.11.232) meminta request ke Domain Controller (www.networknjay.com atau 172.16.11.115 "si server yang pertama dilewatin user").
- Si Domain Controller tidak MEMILIKI KONTEN WEB. Jadi dia akan meneruskan request Client ke Server yang telah diatur untuk meload Konten Web (node1 atau web server1). Ada isi web nya.
- Karena KONTEN WEB ada pada node1 bukan pada server CONTROLLER nya. Jadi ya si CONTROLLER nya menjadi NUMPANG LEWAT AJA.
- Inilah kenapa proxy atau si Controller disebut proxy server "numpang lewat".
Node atau webserver saya, tidak saya pasang DNS. Karena DNS sudah dihandle oleh Controller. Kalau kalian mau buat DNS untuk nodenya sih, SILAHKAN.
Udah puas materi teorinya ?? Kuy lanjutt.... Kita konfigurasi server nyaahhhh
Konfigurasi Server Controller
1. Karena NODE saya tidak memiliki DNS, saya akan buatkan DNS nya di Controller.
2.Tambahkan skrip untuk domain node pada konfigurasi named atau DNS. Tambahkan itu pada Forward dan Reverse nya.
Gak lupa juga di reverse DNS nya
3. Lalu kita restart DNS nya. Bila tidak ada penulisan kata yang salah, maka ya gak akan muncul "failed"
systemctl restart named
4. Lalu kita test, apakah domain yang kita punya sudah konfigurasi tadi benar adanya.
dig node1.networknjay.com
5. Setelah selesai anda menambahkan DNS node pada Controller. Sekarang kita edit sedikit pada skrip nginx nya. Bila anda menggunakan file konfigurasi server terpisah, anda pilih opsi 1. Bila anda hanya mengonfigurasi pada Global Configuration NginX, maka pilih opsi 2.
6.Lalu tambahkan skrip berikut untuk web server anda.
proxy_redirect karena kita akan membuat ini menjadi proxy server sekaligus controller dari sebuah proxy. Maka saya tidak menggunakan proxy redirect ini. Karena fungsi sintak ini untuk sekedar server me-redirect aja. Contoh, pernah anda akses situs porno ilegal ?? yang telah te-redirect ke "KEMKOMINFO" ? Nah seperti itulah kalau pakai proxy redirect, dia akan langsung main redirect aja. Sementara node1 kita belum install DNS.
$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 imaksud nya adalah setiap IP yang me-request melalui proxy server ini. Itu tetap saja akan dikenali dengan Request dari Proxy. Contoh, ente klien windows 10, terus request ke server proxy, kan proxy meneruskan ke server lain. Nah request client akan terbaca sebagai request dari proxy. Mirip-mirip kayak router gitu. Siapapun yang request, pasti akan dikenali adalah routernya.
$proxy_add_x_forwarded_for . Variabel yang digunakan untuk mengarahkan ke "headers".
proxy_pass_header yaitu identifikasi terhadap nama server yang menjadi group, atau bagian dari server controller. Maksudnya si server akan nyari alamat berdasarkan IP, DNS yang jadi sasaran. Kalau yang sasarannya tidak tidak diketahui, ya dia akan mencari berdasarkan resolver.
7. JANGAN LUPA DAN JANGAN SAMPE SALAH !!!!. Isikan skrip yang ditandai merah berikut dengan benar. Yaitu pada sintak "location". Karena Controller berbentuk proxy, maka ia gak memiliki konten web. Maka ia akan melempar quest itu pada web server yang telah diatur. Atur lokasi nya ke node1.
- proxy_pass adalah sintak yang berguna untuk mengambil lokasi konten berdasarkan IP, DOMAIN, atau Cluster. Ya kalau misal ente lebih seneng pake IP, daftarkan aja "http://172.16.11.150/"
8. Eitttss,, ampe lupa ganti hostname nyahh :v .
9. Lalu restart nginx nya.
systemctl restart nginx
Konfigurasi Web Server atau Node (sang pemilik konten web)
1. INI FRESH INSTALL DAN HANYA TERPASANG "NGINX". Jadi masih kosong melompong. Hanya install nginx, lalu selesai. Nah tinggal isi deh web default kontennya dengan html yang kita mau.
systemctl restart nginx
nano /usr/share/nginx/html/index.html
nano /usr/share/nginx/html/index.html
2. Isi begini, masukkan kata "node" biat ketauan apakah server node bekerja atau tidak.
Uji Coba Klien
Menggunakan windows 10 pro ori dengan web browser Chrome. Saya mengakses proxy server nya dengan domain www.networknjay.com. Apakah bisa ???
0 comments: