Reverse Proxy sering digunakan untuk mengakses web server yang berada di belakang firewall. Reverse proxy juga mempunyai fitur untuk melakukan load balancing terhadap web server dengan membagi request secara proposional. Reverse proxy juga dapat dengan mudah menampilkan beberapa web server yang berbeda dengan menggunakan satu url yang sama.
Pada tutorial ini, kita akan mencoba reverse proxy dengan menggunakan apache web server di ubuntu 12.04. Ada 2 skenario yang akan kita lakukan:
– Skenario 1: kita mempunyai web server dengan 1 ip public yang dapat diakses menggunakan url: http://www.edusoftcenter.com. Kita juga mempunyai beberapa web server internal yang untuk mengaksesnya menggunakan ip lokal seperti, server_internal1, server_internal2. Kita akan membuat server_internal1 untuk menghandle domain www.edusoftcenter.com dan server_internal2 untuk menghandle www.contoh.com.
– Skenario 2: kita mempunyai tool monitoring dengan menggunakan port 2812 yang untuk mengaksesnya menggunakan url: http://www.edusoftcenter.com:2812. Kita akan membuat reverse proxy untuk menjadikan port 2812 ini bisa diakses dengan default port (80) sehingga url untuk mengakses aplikasi tersebut menjadi http://www.edusoftcenter.com.
Berikut langkah-langkah untuk membuat 2 skenario diatas:
Langkah 1: instalasi module proxy apache di ubuntu
# apt-get install libapache2-mod-proxy-html libxml2-dev
Langkah 2: aktifkan module tersebut
# a2enmod proxy proxy_http
Langkah 3: buat virtual hostnya (solusi skenario 1)
# vi /etc/apache2/sites-enabled/contoh_reverse
<VirtualHost *:80>
ServerAdmin komarudin.syarif@gmail.com
ServerName contoh.com
ServerAlias www.contoh.com
ProxyPass / http://ip_serverinternal1
ProxyPassReverse / http://ip_serverinternal1
</VirtualHost>
Langkah 4: buat virtual host (solusi skenario 2)
# vi /etc/apache2/sites-enabled/contoh_reverse2
<VirtualHost *:80>
ServerAdmin komarudin.syarif@gmail.com
ServerName edusoftcenter.com
ServerAlias www.edusoftcenter.com
ProxyPass / http://www.edusoftcenter.com :2812
ProxyPassReverse / http://www.edusoftcenter.com :2812
</VirtualHost>
Langkah 5: restart apache
# /etc/init.d/apache2 restart