Pendahuluan
Reverse Proxy adalah jenis proxy server yang bertindak sebegai penerima request, baik dari http maupun https, kemudian mendistribusikan ke salah satu atau beberapa back end server. Beberapa keuntungan dari Reverse proxy adalah :
- Untuk menyembunyikan server aslinya, sehingga lebih aman
- Bisa menjadi sebuah load balancer
- Bisa juga untuk melakukan encrypt/descrypt web server traffic
- Bisa juga sebagai penyimpan cache, baik konten yang statis maupun dinamins
Pada tulisan ini kita akan melakukan konfigurasi Apache sebagai reverse proxy pada CentOS 7.
Kebutuhan
Apace sudah di install pada CentOS 7
Install Modul
Untuk bisa menjadikan apache sebagai reverse proxy kita harus melakukan instalasi dua buah modul, yakni : mod_proxy dan mod_proxy_http.
Untuk melakukan pengecekan apakah modul tersebut sudah diinstall atau belum, dapat kita gunakan perintah :
1 |
httpd -M |
Perintah diatas akan menampilkan modul yang aktif pada apache (secara default pada CentOS 7, kedua modul ini sudah aktif), jika modul tersebut diatas belum muncul, silahkan edit file :
1 |
sudo vim /etc/httpd/conf.modules.d/00-proxy.conf |
dan tambahkan dua baris kode dibawah ini :
1 |
LoadModule proxy_module modules/mod_proxy.so<br />LoadModule proxy_http_module modules/mod_proxy_http.so |
Kemudian simpan dan lakukan restart apache server :
1 |
service httpd restart |
Konfigurasi Reverse Proxy
Untuk melakukan konfigurasi reverse proxy, dikondisikan dengan sebuah file konfigurasi virtual host yang berada pada /etc/httpd/site-available/nama_site.conf. Dengan alamat IP yang akan dituju adalah 10.0.0.3.
1 |
vim /etc/httpd/site-available/nama_site.conf |
Kemudian tambahkan konfigurasi untuk reverse proxy pada bagian bawah dari virtual host ini.
1 2 3 4 5 6 7 |
<VirtualHost *.80> ... ProxyPreserveHost On ProxyPass / http://10.0.0.3/ ProxyPassReverse / http://10.0.0.3/ ... </VirtualHost> |
Kita memberi informasi kepada server dengan ‘ProxyPass’ ketika sebuah request diterima pada path ‘/’, maka akan di redirect ke alamat http://10.0.0.3/. Jangan lupa lakukan simpan dan lakukan restart httpd kembali.
1 |
systemctl httpd restart |
Kita juga bisa menambahkan port tertentu ketika melakukan proxy pass. Misalanya kita membuat reverse proxy dari server apache tomcat yang kita miliki yang berjalan pada port 8080. Ini adalah contoh kode konfigurasinya.
1 2 3 4 5 6 7 |
<VirtualHost *.80> ... ProxyPreserveHost On ProxyPass / http://10.0.0.3:8080/test ProxyPassReverse / http://10.0.0.3:8080/test/ ... </VirtualHost> |
Tes Reverse Proxy
Silahkan akses ke alamat server dari reverse proxy, maka kita akan melihat website yang ditempatkan pada back end server kita yang sengaja kita sembunyikan dari publik.
Demikianlah tulisan ini, semoga bermanfaat.
Referensi : bahasa inggris.