Cara konfigurasi apache server sebagai reverse proxy pada centos 7

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 :

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 :

sudo vim /etc/httpd/conf.modules.d/00-proxy.conf

dan tambahkan dua baris kode dibawah ini :

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so

Kemudian simpan dan lakukan restart apache server :

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.

vim /etc/httpd/site-available/nama_site.conf

Kemudian tambahkan konfigurasi untuk reverse proxy pada bagian bawah dari virtual host ini.

<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.

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.

<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.

Leave a Reply

Your email address will not be published. Required fields are marked *