Membuat VirtualHost Apache2 di Server Linux

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/simrs
  • http://monitoring.test → Folder /var/www/html/monitoring
  • http://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

  1. Aktifkan Modul Apache yang Diperlukan

    sudo a2enmod vhost_alias
    sudo a2enmod rewrite
    sudo systemctl restart apache2
  2. 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
  3. Buat Konfigurasi Wildcard VirtualHost

    sudo nano /etc/apache2/sites-available/wildcard.test.conf

    Isi 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>
  4. Aktifkan Konfigurasi dan Reload Apache

    sudo a2ensite wildcard.test.conf
    sudo systemctl reload apache2
  5. Edit /etc/hosts (untuk lokal)

    Tambahkan entri untuk domain lokal:

    sudo nano /etc/hosts
    127.0.0.1 simrs.test
    127.0.0.1 monitoring.test
    127.0.0.1 aplikasi1.test
  6. Akses dari Jaringan (Public/LAN)

    Langkah tambahan agar website bisa diakses dari komputer lain dalam satu jaringan (misalnya via Wi-Fi atau LAN):

    1. Pastikan firewall tidak memblokir port 80:
      sudo ufw allow 80/tcp
    2. Cari tahu IP lokal Linux Mint kamu:
      ip a

      Cari IP seperti 192.168.1.x

    3. Di komputer klien (HP/laptop lain), edit /etc/hosts (Linux/macOS) atau C:\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.test

      Ganti 192.168.1.100 dengan IP server Linux Mint kamu.

    4. Buka browser dari perangkat lain:
      • http://simrs.test
      • http://monitoring.test

    Jika berhasil, artinya aplikasi kamu bisa diakses dari perangkat lain dalam jaringan lokal.

Tips Tambahan

  • Pastikan semua folder dimiliki user Apache:
    sudo chown -R www-data:www-data /var/www/html/*
  • Jika aplikasi berbasis framework, aktifkan .htaccess dengan AllowOverride 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.

Posting Komentar