Ini berawal ketika ada keinginan dari kami memisahkan web server untuk setiap bagian di tempat saya bekerja, dengan alasan agar kapasitas sebuah server benar-benar digunakan oleh bagian yang bersangkutan dan juga alasan keamanan.
Tetapi terdapat kendala, ip public yang dapat digunakan hanya satu buah ip address, dan itu sudah dipakai oleh web server yang sekarang berjalan.
Terlintas dalam pikiran untuk memakai ip forwarding atau mod_proxy, mulailah mencari dengan mesin pencari andalan “google”, setelah baca sana sini mengenai ip forwarding yang menggunkan iptables dan mod_proxy yang menggunakan ReverseProxy atau ProxyForward pada apache konfigurasi, saya menemukan sebuah tulisan yang bercerita tentang sebuah program Reverse Proxy, Load Balancer dan HTTPS front-end web server , program itu disebut Pound.
Pound dapat meneruskan permintaan akses dari luar ke back-end server dan inilah yang saat ini diperlukan , yaitu program yang dapat meneruskan permintaan dari luar ke back-end server yang memakai ip private. Mulailah kita mendownloadnya, karena kebetulan sistem operasi yang dipakai adalah Fedora 14 i386, tinggal ketik (pada web server yang aktif) :
# yum install Pound
Setelah selesai mulailah mengkonfigurasi, kebetulan saat itu ada 2 dokumen web server yang siap dipublish. Oh ya, katakanlah ip web server yang aktif adalah 555.555.555.555 dan kita akan menaruh dokumen root tersebut pada web server yang baru dengan ip address 10.10.10.10 dan 10.10.10.11.
Karena sudah ada server apache yang aktif, maka pound tidak dapat berjalan di port 80, tidak apa-apa kita ganti dengan port 8080. Untuk domain kita buat dengan nama yourdomain1.com dan yourdomain2.com.
gambaran untuk DNS-nya:
yourdomain1.com IN A 555.555.555.555 yourdomain2.com IN A 555.555.555.555
Konfigurasi di web server dengan ip public :
# vi /etc/pound.cfg User "apache" Group "apache" Control "/var/lib/pound/pound.cfg" ListenHTTP Address 555.555.555.555 <<< gantilah dengan Ip public saudara Port 8080 Service HeadRequire "Host: .*yourdomain1.com.*" BackEnd Address 10.10.10.10 Port 80 End End Service HeadRequire "Host: .*yourdomain2.com.*" BackEnd Address 10.10.10.11 Port 80 End End End
Simpan dan start Pound, gunakan perintah berikut:
# /etc/rc.d/init.d/pound start
Untuk memastikan Pound sudah berjalan, perintahnya:
# netstat –ln tcp 0 0 555.555.555.555:8080 0.0.0.0:* LISTEN
Nah, sekarang kita konfigurasi server yang baru kita install, diasumsikan disini server juga memakai fedora 14 i386, Konfigurasi httpd.conf :
# vi /etc/httpd/conf/httpd.conf <virtualhost 10.10.10.10:80> ServerAdmin admin@yourdomain.com DocumentRoot /var/www/domain1 ServerName 10.10.10.10 ErrorLog logs/domain1-error_log CustomLog logs/domain1-access_log common </virtualhost> <virtualhost 10.10.10.11:80> ServerAdmin admin@yourdomain.com DocumentRoot /var/www/domain1 ServerName 10.10.10.11 ErrorLog logs/domain1-error_log CustomLog logs/domain1-access_log common </virtualhost>
Pada konfigurasi diatas terlihat bahwa dokumen root untuk domain1 ada di folder: /var/www/domain1, sedangkan domain2 berada di folder: /var/www/domain2
Setelah selesai simpan dan restart apache :
# /etc/rc.d/init.d/httpd restart
Sekarang cobalah akses ke http://yourdomain1.com:8080 dan http:// yourdomain2.com:8080, pound akan meneruskan permintann ke ip 10.10.10.10 dan 10.10.10.11 tanpa merubah alamat protocol yang ada.
Tambahan :
Jika menginginkan akses ke situs tetap dengan nama yourdomain1.com dan yourdomain2.com, konfigurasikanlah httpd pada ip 555.555.555.555
# vi /etc/httpd/conf/httpd.conf <virtualhost yourdomain1.com:80> ServerAdmin admin@yourdomain.com DocumentRoot /var/www/yourdomain1 ServerName yourdomain1.com ErrorLog logs/domain1-error_log CustomLog logs/domain1-access_log common </virtualhost> <virtualhost yourdomain2.com:80> ServerAdmin admin@yourdomain.com DocumentRoot /var/www/yourdomain2 ServerName yourdomain2.com ErrorLog logs/domain2-error_log CustomLog logs/domain2-access_log common </virtualhost>
Simpan dan sebelum Restart Apache, buatlah direktori domain1 dan domain 2 di dalam direktoi /var/www, kemudian buat file index.html pada masing-masing direktori tersebut, Isinya :
# vi /var/www/domain1/index.html
<script type="text/javascript">
top.location.replace('http://yourdomain1.com:8080')
</script>
Tujuannya adalah supaya permintaan atas domain tersebut diganti ke port 8080 dimana pound berjalan.
Restart Apache
# /etc/rc.d/init.d/httpd restart
Selamat mencoba
No comments:
Post a Comment