Tuesday, January 22, 2019

How to install Reverse Proxy with Apache HTTP server


Reverse Proxy dengan Apache HTTP server
How to install Reverse Proxy with Apache HTTP server..????




Anda sudah terlanjur memiliki beberapa mesin web server pada local area network yang

menjalankan beberapa aplikasi berbasis web yang berbeda serta berjalan pada paltform system yang

juga berbeda namun tuntutan kebutuhan perusahaan mengharuskan aplikasi-aplikasi web tersebut

dapat diakses dari jaringan public (internet) tanpa harus merubah kode sumber dari aplikasi web

dan konfigurasi web server tersebut. Cara untuk menyelesaikan masalah tersebut adalah dengan

meminta(menyewa) kepada ISP agar disediakan beberapa blok IP public sejumlah atau sebanyak

yang dapat diberikan kepada masing-masing mesin web server tersebut, kemudian memetakan

nama masing-masing mesin web server tersebut dengan beberapa IP public yang telah disediakan

ISP pada dns server pengelola domain perusahaan Anda. Namun bagaimana dengan kasus yang lain

yaitu Anda tidak memiliki atau dengan kata lain ISP tidak dapat menyediakan IP public yang sesuai

dengan jumlah mesin web server tersebut, misalnya ISP hanya dapat menyediakan 2 buah IP public

yang dapat digunakan sedangkan mesin web server berjumlah tiga buah dan belum lagi mesin

email server juga memerlukan IP public. Hmm...apa benar-benar ada kondisi atau permasalahan

seperti ini ? Ya mungkin saja, karena permasalahan tersebut memang ada solusinya sebab tidak

akan ada suatu persoalan jika tidak ada penyelesaiannya :) . Permasalahan tersebut dapat

diselesaikan dengan cara menerapkan http reverse proxy. Nah..untuk itu pada artikel kali ini

penulis akan menjelaskan bagaimana menerapkan reverse proxy dengan pendekatan kasus yang

telah diungkapkan tadi.

Pada artikel ini penulis menerapkan reverse proxy di Apache HTTP server versi 2 bawaan distro

linux CentOS 5.2.

I. HTTP Proxy

Sebelum kita melangkah pada penerapan http reverse proxy, penulis akan menjelaskan sedikit

tentang apa itu HTTP proxy. HTTP proxy atau web proxy secara sederhana adalah sebuah gateway

yang menjadi perantara user dengan web-web server yang sebenarnya (web-web server di Internet).

Umumnya http proxy dikenal menjadi dua jenis http proxy yaitu forward proxy dan reverse proxy,

namun forward proxy sering disingkat penyebutannya dengan http proxy atau web proxy saja.

I.1. Forward Proxy

Forward proxy adalah http proxy yang menjadi perantara user-user pada local area network dengan

web-web server yang terdapat pada internet, penerapan forward proxy umumnya disertai

mekanisme web cache untuk mengefisienkan bandwidth dan meningkatkan akselerasi akses web,

pada prakteknya jenis http proxy inilah yang umum digunakan atau diterapkan. Software yang

umumnya digunakan untuk keperluan forward proxy yaitu squid http proxy server.

I.2.Reverse Proxy

Reverse proxy memiliki maksud yang berkebalikan dengan forward proxy yaitu menjadi perantara




user-user di internet terhadap akses ke web-web server yang berada pada local area network,

sehingga seolah-olah user di internet mengakses langsung web server yang dimaksud padahal

sesungguhnya user di internet mengakses web-web server yang terdapat di local area network

melalui reverse proxy tersebut. Tentunya komputer yang bertindak sebagai reverse proxy tersebut

memiliki IP public yang static sehingga dapat diakses dari internet. Software yang umumnya

digunakan untuk keperluan reverse proxy yaitu apache http server dengan mod_proxy nya.

II. Skenario

Untuk mempermudah pemahaman Anda tentang bagaimana penerapan reverse proxy di apache http

server, penulis membuat skenario sebagai berikut:

● Anda memiliki 2 buah IP public yang masing-masing diberikan ke modem/router ADSL

(misalnya ip=202.202.202.153/30) dan ke eth0 dari komputer bakal reverse

proxy(ip=202.202.202.154/30), lihat Gambar-1

● Komputer yang berfungsi sebagai reverse proxy juga berfungsi sebagai internet shraing bagi

komputer lainnya dalam LAN

● Local area network Anda memiliki network address 192.168.1.0/24

● IP address local dari komputer reverse proxy adalah 192.168.1.1

● Jumlah web server local adalah tiga buah yang masing-masing menjalankan aplikasi web

untuk marketing (ip=192.168.1.2) , hrd (ip=192.168.1.3), dan finance(192.168.1.4).

● Untuk mengakses aplikasi web marketing dari internet menggunakan alamat url

http://marketing.example.com

● Untuk mengakses aplikasi web hrd dari internet menggunakan alamat url

http://hrd.example.com

● Untuk mengakses aplikasi web hrd dari internet menggunakan alamat url

http://finance.example.com

● Penerapan reverse proxy tidak disertai dukngan web cache

● Diasumsikan Anda telah mendaftarkan pada DNS server pengelola domain example.com,

untuk nama host marketing.example.com, dan hrd.example.com serta finance.example.com

dipetakan ke ip 202.202.202.154 (yaitu IP public dari komputer reverse proxy)

● Pada komputer reverse proxy default gateway diset ke ip 202.202.202.153, dan pada

komputer-komputer di local area network default gateway diset ke ip 192.168.1.1




Gambar-1. Diagram jaringan reverse proxy

III. Konfigurasi Gateway

Langkah konfigurasi berikut ini bertujuan memungkinkannya traffic dari komputer-komputer pada

LAN dapat diteruskan ke internet. Lakukan perintah-perintah berikut ini untuk membuat

gateway/internet sharing (diasumsikan kebijakan default firewall tidak memblok koneksi apapun):

Pertama mengaktifkan IP Forward sbb:

# echo 1 > /proc/sys/net/ipv4/ip_forward

# echo echo 1 > /proc/sys/net/ipv4/ip_forward >> /etc/rc.local

atau Edit file /etc/sysctl.conf, dan set parameter net.ipv4.ip_forward=1

Kedua mengaktifkan IP Masquerade sbb:

# service iptables stop

# iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j MASQUERADE

# service iptables save

# chkconfig iptables on

IV. Konfigurasi reverse proxy apache http server

Dengan asumsi apache http server sudah terinstal, langkah berikutnya yang Anda lakukan adalah

konfigurasi apache sebagai reverse proxy. Tetapi perlu diperhatikan sebelumnya bahwa apache

membutuhkan mod_proxy. Untuk memastikan apakah sudah ada mod_proxy atau belum serta

apakah sudah dimuat oleh apache saat runtime, lakukan langkah berikut ini:

# ls /etc/httpd/modules/ |grep mod_proxy.so

Jika perintah tersebut menghasilkan output “mod_proxy.so”, maka modul mod_proxy sudah ada.




# grep mod_proxy.so /etc/httpd/conf/httpd.conf

Jika perintah tersebut menghasilkan output “LoadModule proxy_module modules/mod_proxy.so”,

maka mod_proxy sudah running.

Selanjutnya agar sesuai dengan skenario reverse proxy yang telah ditentukan maka tambahkan

baris-baris berikut ini pada bagian akhir dari file konfigurasi /etc/httpd/conf/httpd.conf.

NameVirtualHost 202.202.202.154



ServerName marketing.example.com

ProxyRequests Off

ProxyPreserveHost On

ProxyPass / http://192.168.1.2/

ProxyPassReverse / http://192.168.1.2/



Order deny,allow

Allow from all




ServerName hrd.example.com

ProxyRequests Off

ProxyPreserveHost On

ProxyPass / http://192.168.1.3/

ProxyPassReverse / http://192.168.1.3/



Order deny,allow

Allow from all




ServerName finance.example.com

ProxyRequests Off

ProxyPreserveHost On

ProxyPass / http://192.168.1.4/

ProxyPassReverse / http://192.168.1.4/



Order deny,allow

Allow from all



Setelah mengeit dan menyimpan file konfigurasi apache, restart service apache httpd seperti berikut

# service httpd restart

Selanjutnya agar service httpd diaktifkan saat boot lakukan perintah berikut:

# chkconfig httpd on

Sekarang reverse proxy sudah selesai Anda setup.
Share This
Previous Post
Next Post

0 komentar:

Terimakasi telah mengunjungi blog ini , semoga informasi yang terdapat dalam blog ini bermafaat bagi anda jika informasi yang kalian baca di blog ini bermanfaat silahkan di Share dan beri komentar :)
Perhatian !!!

Berkomentarlah yang baik dan sopan !
jika mengirim link aktif komentar anda akan di anggap spam !
berkomentarlah sesuai topik !