Tutorial Linux Lanjutan

DNS Subdomain dan
VirtualHost Apache

Materi ini menggabungkan konfigurasi DNS lokal dan Apache2 agar subdomain seperti web1 dan web2 dapat diarahkan ke website yang berbeda dalam satu server Debian.

Langkah konfigurasi

Setup subdomain dan virtual host

Advanced

DNS Subdomain dan VirtualHost Apache

Lihat catatan

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.

1
Buat subdomain pada file zone domain

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
2
Tambahkan PTR pada reverse zone

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.
3
Restart service named

Terapkan perubahan pada DNS server setelah subdomain ditambahkan.

systemctl restart named
4
Cek subdomain dari CMD

Gunakan nslookup dan pastikan dua subdomain menampilkan nama dan IP yang benar.

nslookup web1.tkj.local
nslookup web2.tkj.local
5
Pastikan DNS berhasil dulu

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
6
Buat direktori website untuk tiap subdomain

Setiap subdomain akan memiliki folder web masing-masing.

mkdir /var/www/html/web1
mkdir /var/www/html/web2
7
Buat file index untuk tiap layanan

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
8
Buat VirtualHost Apache untuk setiap subdomain

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>
9
Buat VirtualHost untuk web2

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>
10
Aktifkan virtual host

Jalankan a2ensite untuk web1 dan web2.

/usr/sbin/a2ensite web1.conf
/usr/sbin/a2ensite web2.conf
11
Restart service Apache

Terapkan semua perubahan konfigurasi VirtualHost.

systemctl restart apache2.service
12
Pastikan tidak ada error

Cek kembali jika Apache gagal dijalankan setelah perubahan virtual host.

systemctl status apache2.service
13
Uji di browser

Akses nama subdomain satu persatu dan pastikan halaman yang tampil sesuai isi file masing-masing.

http://web1.tkj.local
http://web2.tkj.local
Catatan: syarat konfigurasi basic DNS dan web harus sudah selesai. Jika subdomain belum bisa di-nslookup, jangan lanjut ke konfigurasi Apache sebelum DNS benar-benar berhasil. Sesuaikan juga nama domain jika Anda memakai tkj.local atau domain lokal lain.