DNS Subdomain dan VirtualHost Apache
Syarat sebelum mulai: konfigurasi basic DNS dan web server
sudah berhasil. Contoh yang dipakai di sini adalah domain
tkj.local dengan dua subdomain:
web1.tkj.local dan web2.tkj.local.
Tambahkan dua subdomain yang mengarah ke IP server web yang sama.
pico /etc/bind/db.domain
web1 IN A 172.16.125.101
web2 IN A 172.16.125.101
Sesuaikan file reverse agar IP server dikenali sebagai dua subdomain tersebut.
pico /etc/bind/db.ip
101 IN PTR web1.tkj.local.
101 IN PTR web2.tkj.local.
Terapkan perubahan pada DNS server setelah subdomain ditambahkan.
systemctl restart named
Gunakan nslookup dan pastikan dua subdomain menampilkan nama dan IP yang benar.
nslookup web1.tkj.local
nslookup web2.tkj.local
Jika hasil nslookup belum benar, periksa ulang sampai berhasil sebelum lanjut ke Apache.
# pastikan web1 dan web2 resolve dengan benar
# jika gagal, cek kembali konfigurasi DNS
Setiap subdomain akan memiliki folder web masing-masing.
mkdir /var/www/html/web1
mkdir /var/www/html/web2
Isi sederhana ini memudahkan pengujian saat virtual host selesai dibuat.
echo "<h1>SELAMAT DATANG DI WEB 1</h1>" > /var/www/html/web1/index.html
echo "<h1>SELAMAT DATANG DI WEB 2</h1>" > /var/www/html/web2/index.html
Konfigurasi web1.conf agar mengarah ke domain dan direktori web1.
pico /etc/apache2/sites-available/web1.conf
<VirtualHost *:80>
ServerName web1.tkj.local
DocumentRoot /var/www/html/web1
</VirtualHost>
Konfigurasi web2.conf dengan domain dan document root yang sesuai.
pico /etc/apache2/sites-available/web2.conf
<VirtualHost *:80>
ServerName web2.tkj.local
DocumentRoot /var/www/html/web2
</VirtualHost>
Jalankan a2ensite untuk web1 dan web2.
/usr/sbin/a2ensite web1.conf
/usr/sbin/a2ensite web2.conf
Terapkan semua perubahan konfigurasi VirtualHost.
systemctl restart apache2.service
Cek kembali jika Apache gagal dijalankan setelah perubahan virtual host.
systemctl status apache2.service
Akses nama subdomain satu persatu dan pastikan halaman yang tampil sesuai isi file masing-masing.
http://web1.tkj.local
http://web2.tkj.local