Pengertian VirtualHost
VirtualHost adalah fitur Apache2 yang memungkinkan satu server menangani banyak situs web dengan nama domain berbeda. VirtualHost dapat diatur berdasarkan nama (name-based) atau alamat IP (IP-based).
Di lingkungan pengembangan, VirtualHost memungkinkan kita menjalankan banyak proyek secara lokal, misalnya:
http://simrs.test→ Folder/var/www/html/simrshttp://monitoring.test→ Folder/var/www/html/monitoringhttp://aplikasi1.test→ Folder/var/www/html/aplikasi1
Contoh Kasus
Kamu memiliki banyak aplikasi web di dalam /var/www/html/, dan ingin masing-masing diakses melalui domain berbeda, baik dari lokal maupun jaringan luar (misalnya untuk testing di perangkat lain atau LAN).
Langkah-langkah Konfigurasi
-
Aktifkan Modul Apache yang Diperlukan
sudo a2enmod vhost_alias sudo a2enmod rewrite sudo systemctl restart apache2 -
Siapkan Struktur Folder Aplikasi
sudo mkdir -p /var/www/html/simrs sudo mkdir -p /var/www/html/monitoring sudo mkdir -p /var/www/html/aplikasi1 echo "<h1>SIMRS</h1>" | sudo tee /var/www/html/simrs/index.html echo "<h1>Monitoring</h1>" | sudo tee /var/www/html/monitoring/index.html echo "<h1>Aplikasi 1</h1>" | sudo tee /var/www/html/aplikasi1/index.html -
Buat Konfigurasi Wildcard VirtualHost
sudo nano /etc/apache2/sites-available/wildcard.test.confIsi dengan:
<VirtualHost *:80> ServerName wildcard.test ServerAlias *.test VirtualDocumentRoot /var/www/html/%1 <Directory /var/www/html> Options Indexes FollowSymLinks AllowOverride All Require all granted </Directory> ErrorLog ${APACHE_LOG_DIR}/wildcard_error.log CustomLog ${APACHE_LOG_DIR}/wildcard_access.log combined </VirtualHost> -
Aktifkan Konfigurasi dan Reload Apache
sudo a2ensite wildcard.test.conf sudo systemctl reload apache2 -
Edit
/etc/hosts(untuk lokal)Tambahkan entri untuk domain lokal:
sudo nano /etc/hosts127.0.0.1 simrs.test 127.0.0.1 monitoring.test 127.0.0.1 aplikasi1.test -
Akses dari Jaringan (Public/LAN)
Langkah tambahan agar website bisa diakses dari komputer lain dalam satu jaringan (misalnya via Wi-Fi atau LAN):
- Pastikan firewall tidak memblokir port 80:
sudo ufw allow 80/tcp - Cari tahu IP lokal Linux Mint kamu:
ip aCari IP seperti
192.168.1.x - Di komputer klien (HP/laptop lain), edit
/etc/hosts(Linux/macOS) atauC:\Windows\System32\drivers\etc\hosts(Windows), dan tambahkan:192.168.1.100 simrs.test 192.168.1.100 monitoring.test 192.168.1.100 aplikasi1.testGanti
192.168.1.100dengan IP server Linux Mint kamu. - Buka browser dari perangkat lain:
http://simrs.testhttp://monitoring.test
Jika berhasil, artinya aplikasi kamu bisa diakses dari perangkat lain dalam jaringan lokal.
- Pastikan firewall tidak memblokir port 80:
Tips Tambahan
- Pastikan semua folder dimiliki user Apache:
sudo chown -R www-data:www-data /var/www/html/* - Jika aplikasi berbasis framework, aktifkan
.htaccessdenganAllowOverride All. - Gunakan nama domain yang unik dan tidak konflik dengan domain nyata.
Kesimpulan
Dengan konfigurasi VirtualHost Apache2 dan wildcard .test, kamu dapat menjalankan banyak aplikasi web lokal dengan domain terpisah, baik untuk pengembangan pribadi maupun demo ke jaringan lokal.
Artikel ini juga mencakup pengaturan agar aplikasi tidak hanya bisa diakses dari localhost, tetapi juga dari perangkat lain dalam satu jaringan. Ini sangat berguna untuk testing, demo, atau kolaborasi tim.