Apache2 mendukung penyajian konten yang berbeda tergantung pada nama domain, bahkan jika semua domain tersebut menyelesaikan ke alamat IP yang sama. Setiap nama domain ditangani oleh host virtual , dengan demikian nama host virtual berbasis nama .
Berikut ini contoh konfigurasi untuk dua domain:
NameVirtualHost *:80
<VirtualHost *:80>
ServerName www.yourfirstdomain.tld
DocumentRoot /www/yourfirstdomain.tld/
</VirtualHost>
<VirtualHost *:80>
ServerName www.yourseconddomain.tld
DocumentRoot /www/yourseconddomain.tld/
</VirtualHost>
Anda akan menemukan dokumentasi resmi tentang dukungan host virtual berbasis nama di sini .
Namun, harap dicatat ini hanya akan berfungsi dengan koneksi HTTP biasa, tidak dengan HTTPS (HTTP over SSL): host virtual berbasis nama bergantung pada mengetahui nama apa yang diminta, tetapi informasi ini tidak dapat diketahui oleh Apache hingga SSL terenkripsi koneksi dibuat.
Jika Anda perlu memiliki pengaturan Anda yang bekerja dengan HTTPS juga, Anda perlu mengandalkan ekstensi ke protokol SSL yang disebut Server Name Indication (SNI) ( RFC4366 ). Pada dasarnya, klien berkemampuan SNI (mis: browser web) menambahkan informasi teks tambahan saat membuat koneksi SSL terenkripsi, memungkinkan server untuk mengetahui nama yang diminta sebelum koneksi SSL siap.
Semua browser belum mendukung SNI. Pada saat penulisan dan menurut Wikipedia, ini adalah:
- Internet Explorer 7 atau lebih baru, pada Windows Vista atau lebih tinggi (tidak berfungsi pada XP, bahkan IE 8)
- Mozilla Firefox 2.0 atau lebih baru
- Opera 8.0 atau yang lebih baru (protokol TLS 1.1 harus diaktifkan)
- Opera Mobile setidaknya versi 10.1 beta di Android
- Google Chrome (Vista atau lebih tinggi, XP di Chrome 6 atau lebih baru, OS X 10.5.7 atau lebih tinggi di Chrome 5.0.342.1 atau lebih baru)
- Safari 2.1 atau yang lebih baru (Mac OS X 10.5.6 atau lebih tinggi dan Windows Vista atau lebih tinggi)
- Konqueror / KDE 4.7 atau lebih baru
- MobileSafari di Apple iOS 4.0 atau yang lebih baru
- Browser default Android pada Honeycomb (v3.x) atau yang lebih baru
- Windows Phone 7
- MicroB di Maemo
Hosting beberapa host virtual berbasis nama yang dapat diakses melalui HTTPS mengharuskan Anda mengaktifkan mod_ssl dan menambahkan konfigurasi yang sama seperti pada contoh di atas:
Listen 443
NameVirtualHost *:443
# Accept connections for these vhosts from non-SNI clients
# Clients without SNI will be handled by the first defined vhost.
# If you only want SNI-enabled client, put on instead
SSLStrictSNIVHostCheck off
<VirtualHost *:443>
ServerName www.yourfirstdomain.tld
DocumentRoot /www/yourfirstdomain.tld/
</VirtualHost>
<VirtualHost *:443>
ServerName www.yourseconddomain.tld
DocumentRoot /www/yourseconddomain.tld/
</VirtualHost>
Ingat bahwa menggunakan SSL mengharuskan Anda untuk membeli sertifikat SSL untuk domain Anda - atau untuk membuat beberapa yang ditandatangani secara otomatis, dan untuk mengkonfigurasi Apache agar menggunakannya untuk koneksi SSL.