Apache:Virtual Host
Host Virtual (Inggris: Virtual Host) pada server web Apache adalah sebuah metode yang memungkinkan satu server fisik untuk melayani lebih dari satu domain atau situs web secara bersamaan. Konsep ini mendefinisikan identitas tambahan bagi server web, di mana setiap situs web dapat memiliki konfigurasi yang terpisah meskipun berjalan pada perangkat lunak server yang sama.
Jenis Host Virtual
Apache mendukung dua metode utama dalam konfigurasi host virtual:
- Berbasis Alamat IP: Metode ini mengharuskan setiap situs web memiliki alamat IP yang unik.
- Berbasis Nama (Name-based): Metode ini memungkinkan beberapa situs web berjalan pada satu alamat IP dan port yang sama. Server membedakan situs yang diminta berdasarkan nama host yang dikirim oleh klien (peramban) dalam header HTTP.
Pada implementasi modern, metode berbasis nama lebih umum digunakan karena kelangkaan alamat IPv4. Namun, tantangan muncul ketika menggunakan protokol HTTPS karena enkripsi SSL terjadi sebelum header host dikirim. Untuk mengatasi hal ini, ekstensi protokol yang disebut Server Name Indication (SNI) digunakan, yang memungkinkan peramban mengirim nama host selama inisiasi koneksi SSL (handshake),.
Struktur dan Konfigurasi
Dalam distribusi Debian, konfigurasi host virtual dikelola melalui direktori /etc/apache2/sites-available/. Setiap host virtual didefinisikan dalam sebuah blok <VirtualHost> di dalam berkas konfigurasi berekstensi .conf.
Direktif Utama Konfigurasi standar host virtual mencakup parameter-parameter berikut:
- ServerName: Menentukan nama domain utama dari situs web (misalnya
www.falcot.org). - ServerAlias: Menentukan nama alternatif untuk domain tersebut (misalnya
falcot.org). - DocumentRoot: Menentukan lokasi direktori tempat berkas situs web disimpan (misalnya
/var/www/htmlatau/var/www/web/),. - LogFormat dan CustomLog: Mengatur format dan lokasi penyimpanan catatan aktivitas (log) akses untuk memisahkan log antar host virtual.
Contoh konfigurasi dasar host virtual pada port 80:
<VirtualHost *:80>
ServerName www.falcot.org
ServerAlias falcot.org
DocumentRoot /srv/www/www.falcot.org
</VirtualHost>
Manajemen Situs
Apache di Debian menyediakan utilitas khusus untuk mengelola status host virtual:
- a2ensite: Perintah ini digunakan untuk mengaktifkan sebuah situs dengan membuat tautan simbolis dari
sites-availablekesites-enabled. Contoh:a2ensite www.falcot.org,. - a2dissite: Perintah ini digunakan untuk menonaktifkan situs. Contoh:
a2dissite default,.
Setelah melakukan perubahan konfigurasi, seperti mengaktifkan atau menonaktifkan host virtual, layanan Apache harus dimulai ulang atau dimuat ulang (reload) agar perubahan diterapkan.
Implementasi SSL/HTTPS
Untuk mengamankan host virtual menggunakan HTTPS, modul SSL (mod_ssl) harus diaktifkan terlebih dahulu. Konfigurasi host virtual untuk HTTPS biasanya berjalan pada port 443 dan memerlukan direktif tambahan seperti SSLEngine on serta lokasi berkas sertifikat (SSLCertificateFile) dan kunci privat,. Dukungan SNI memungkinkan beberapa host virtual HTTPS berjalan pada satu alamat IP tanpa menimbulkan peringatan sertifikat pada peramban modern.
Prioritas Penanganan
Jika server menerima permintaan yang tidak cocok dengan ServerName atau ServerAlias manapun yang telah didefinisikan, Apache akan menggunakan konfigurasi dari host virtual yang didefinisikan pertama kali sebagai default,.