Sebelum kita membuat konfigurasi reverse proxy, ada baiknya kita membahas sekilas tentang proxy :).
Apa Itu Proxy Server ?
Proxy Server adalah sebuah server yang menyediakan layanan perantara antara client host dengan server lain.
Berikut adalah gambaran umum dari proxy server
Dari gambar diatas dapat dilihat bahwa sebenarnya user atau client melakukan akses terhadap proxy server, selanjutnya proxy server akan meneruskan akses ke server yang dituju. Biasanya proxy server digunakan sebagai cache, keamanan, load balancing dan lain sebagainya.
Apa Itu Reverse Proxy ?
Reverse Proxy adalah salah satu jenis dari proxy, biasanya reverse proxy digunakan sebagai perantara antara client dengan web server.
Berikut adalah arsitektur dari reverse proxy.
Dari gambar diatas dapat dilihat bahwa sebuah proxy dapat menghandle beberapa web server. Adapun cara kerjanya adalah client akan melakukan akses terhadap sebuah URL misalnya https://www.google.co.id maka secara otomatis client akan melakukan request terlebih dahulu ke proxy server akan tetapi seolah - olah client melakukan request langsung ke web server. Setelah menerima request dari client, maka proxy server akan meneruskan request tersebut ke web server yang dituju. Untuk mempermudah pemahaman langsung saja kita melakukan setting reverse proxy pada nginx :D.
Setup Vagrant
Pada artikel kali ini, penulis akan menggunakan vagrant. Bagi yang belum tau apa itu vagrant, silahkan lihat di Belajar Vagrant. Pada kesempatan kali ini, penulis menggunakan box ubuntu/trusty64 atau ubuntu 14.04 LTS.
Silahkan buat sebuah folder ubuntu-nginx-reverse-proxy kemudian jalankan perintah berikut di dalam folder tersebut.
Lalu buka file Vagrantfile lalu ubah codingannya menjadi seperti berikut.
Membuat File Executable Shell
File ini dibuat berfungsi sebagai provisioning pada vagrant, silahkan buat sebuah file install.sh kemudian isikan codingan seperti berikut.
Membuat Konfigurasi Reverse Proxy Nginx
Langkah selanjutnya adalah silahkan anda buat sebuah folder config, di dalam folder tersebut silahkan buat sebuah file nginx-proxy. Kemudian isikan codingan berikut pada file tersebut.
Konfigurasi Repository Dan Environment
Karena kita menggunakan ubuntu, maka tahap selanjutnya kita melakukan konfigurasi repository dan environment pada ubuntu. Untuk konfigurasi repository, kita akan menggunakan repository kambing ui. Silahkan buat sebuah file sources.list kemudian isikan codingan berikut.
Untuk konfigurasi environment, silahkan buat sebuah file environment dan berikut adalah isi codingannya.
Membuat Aplikasi Web Node JS
Semua konfigurasi untuk bagian nginx telah disiapkan, langkah terakhir adalah membuat sebuah aplikasi web dengan node js yang berfungsi sebagai server side sedangkan nginx berfungsi sebagai reverse proxy. Silahkan buat sebuah file app.js di dalam folder config kemudian isikan codingan node js seperti berikut ini.
Arsitektur Reverse Proxy
Arsitektur reverse proxy yang akan digunakan adalah sebagai berikut.
Dari gambar diatas, terdapat 2 teknologi yang kita gunakan diantaranya adalah.
Node js : sebagai server side
Nginx : sebagai reverse proxy
Node js berjalan pada port 3000 sedangkan nginx akan berjalan pada port 80. Agar nginx dapat dijadikan sebagai reverse proxy, kita harus melakukan beberapa konfigurasi pada nginx. Kongurasi tersebut sebenarnya telah kita buat pada file install.sh. Konfigurasi tersebut adalah pada bagian
Dari codingan diatas dapat bahwa kita mencopy file nginx-proxy dari folder /vagrant/config/ ke dalam folder /etc/nginx/sites-available/. Kemudian tahap selanjutnya kita melakukan symlink dari file reverseproxy ke dalam folder /etc/nginx/sites-enabled/.
Testing Reverse Proxy
Tahap terakhir yaitu melakukan testing reverse proxy. Silahkan masuk ke folder ubuntu-nginx-reverse-proxy melalui terminal lalu jalankan perintah berikut.
Maka vagrant akan menjalankan sistem operasi ubuntu dan melakukan provisioning, berikut adalah outputnya.
Jika semua instalasi telah selesai, maka anda dapat melihat outputnya seperti berikut ini.
Output diatas dapat dikatakan bahwa aplikasi node js telah berjalan dengan baik. Kemudian silahkan akses http://127.0.0.1:8080/. Berikut adalah tampilan hasilnya :).
Untuk source code nya silahkan lihat di ubuntu nginx reverse proxy. Sekian artikel mengenai konfigurasi reverse proxy pada nginx dan terima kasih :)