Studi kasus : Konfigurasi virtual host berdasarkan alamat IP di web server Apache pada Ubuntu Server (IP based virtual host)


Pada tulisan kali ini, saya akan membahas sebuah studi kasus, bagaimana melakukan konfigurasi virtual host berbasis IP dengan web server apache. Seperti yang umum diketahui, web server apache adalah sebuah aplikasi server yang menyediakan layanan yang memungkinkan website dapat diakses oleh kliennya (umumnya) melalui port 80. Virtual host ini adalah salah satu fitur yang dimiliki oleh web server apache. Dengan virtual host, seolah-olah kita memiliki beberapa web server di dalam satu server. Fitur virtual host di web server apache ini dapat berbasis IP atau berbasis domain. Hanya saja pada kesempatan kali ini, saya hanya akan membahas virtual host berbasis IP.

Untuk lebih jelasnya, saya membuat sebuah studi kasus sederhana dengan ilustrasi seperti yang ditampilkan di bawah:
 
Dari ilustrasi di atas, kita dapat melihat bahwa web server dapat diakses dari 3 buah blok jaringan dari 3 buah ethernet milik web server tersebut yang terdiri dari:
  • eth0 dengan alamat IP 192.168.0.1/24
  • eth1 dengan alamat IP 192.168.1.1/24
  • eth2 dengan alamat IP 10.0.0.1/24

ketiga ethernet tadi menghubungkan ke 3 jaringan yaitu eth0 ke jaringan 192.168.0.0/24, eth1 ke jaringan 192.168.1.0/24 dan eth2 ke Internet.

Web server tersebut memuat web perusahaan yang dapat diakses dari internet melalui IP publik 10.0.0.1/24 dengan lokasi web perusahaan ada di folder /var/www/ yang dapat diakses dengan URL (misal) http://webcompany/. Selain itu, web server tersebut juga memiliki 2 buah aplikasi internal perusahaan (berbasis web). Aplikasi web yang pertama terletak di folder /var/www/WebApps1/ yang rencananya hanya boleh diakses dari jaringan 192.168.1.0/24 dan aplikasi web yang kedua terletak di folder /var/www/WebApps2/ yang rencananya hanya boleh diakses dari jaringan 192.168.0.0/24.
Skenario tersebut ditunjukkan pada ilustrasi di bawah:



Jika tanpa fitur virtual host, maka dari jaringan 192.168.1.0/24 akan dapat mengakses aplikasi WebApps 2 dengan mengetikkan URL http://192.168.1.1/WebApps2/ , begitu juga ketika jaringan 192.168.0.0/24 juga akan dapat mengakses WebApps1 hanya dengan mengetikkan URL http://192.168.0.1/WebApps1/ , dan lebih parahnya apabila web apps 1 dan 2 dapat diakses dari internet melalui web perusahaan hanya dengan mengetikkan URL: http://webcompany/WebApps1/ atau dengan URL: http://webcompany/WebApps2/ , seperti yang ditunjukkan pada ilustrasi di bawah:


Ketika fitur virtual host berbasis IP diaktifkan maka ketika klien akan mengakses WebApps1 dari jaringan 192.168.1.0/24, si klien tinggal mengetikkan alamat IP 192.168.1.1 (eth1 dari Web Server), begitu juga ketika klien dari jaringan 192.168.0.0/24 mengakses WebApps2 tinggal mengetikkan alamat 192.168.0.1 (eth0 dari Web Server) sehingga kejadian seperti ilustrasi di atas tidak perlu terjadi.

Berikut langkah-langkah konfigurai virtual host dengan skenario di atas:

1. Silakan login ke dalam Ubuntu Server, kemudian edit file di /etc/apache2/sites-available/ 000-default.conf dengan menjalankan perintah di bawah:

 sudo vim /etc/apache2/sites-available/default.conf

2. Lalu tambahkan konfigurasi di bawah ke dalam file tersebut:

 <VirtualHost 192.168.0.1:80>   
     ServerAdmin webmaster@localhost   
     DocumentRoot /var/www/WebApps1/   
     ErrorLog ${APACHE_LOG_DIR}/error.log   
     CustomLog ${APACHE_LOG_DIR}/access.log combined   
 </VirtualHost>   
 <VirtualHost 192.168.1.1:80>   
     ServerAdmin webmaster@localhost   
     DocumentRoot /var/www/WebApps2/  
     ErrorLog ${APACHE_LOG_DIR}/error.log   
     CustomLog ${APACHE_LOG_DIR}/access.log combined   
 </VirtualHost>   

3. Kemudian restart web server apache anda dengan menjalankan perintah di bawah:

 sudo service apache2 restart

4. Maka aplikasi WebApps1 tersebut dapat diakses dari jaringan 192.168.0.0/24 hanya dengan mengetikkan alamat webserver dengan URL 192.168.0.1, begitu juga dengan aplikasi WebApps2 tersebut dapat diakses dari jaringan 192.168.1.0/24 hanya dengan mengetikkan alamat webserver dengan URL 192.168.1.1 seperti ilustrasi di bawah:

  
Bagaimana, mudah bukan? Selamat mencoba dan terima kasih telah berkunjung :)

Beberapa artikel terkait:

Comments