Membuat Virtual Host Nginx untuk Banyak Domain dalam Satu VPS
Mengelola beberapa website dalam satu VPS merupakan praktik yang umum dilakukan oleh administrator server, guru TKJ, developer web, maupun pengelola laboratorium komputer. Dengan memanfaatkan fitur Server Block pada Nginx, satu server dapat melayani banyak domain secara efisien tanpa perlu menambah VPS baru.
Pada artikel ini, kita akan mempelajari cara membuat beberapa website dalam satu VPS menggunakan domain contoh sekolah.local dan lab.local, lengkap dengan struktur folder serta konfigurasi yang dapat langsung diterapkan.
Apa Itu Virtual Host pada Nginx?
Virtual Host atau lebih dikenal sebagai Server Block pada Nginx adalah fitur yang memungkinkan satu web server melayani beberapa domain atau website sekaligus.
Sebagai contoh:
- sekolah.local โ Website Profil Sekolah
- lab.local โ Website Laboratorium Komputer
Kedua website tersebut berjalan pada VPS yang sama namun memiliki folder dan konfigurasi terpisah.
Keuntungan menggunakan Server Block:
- Menghemat biaya VPS
- Manajemen website lebih mudah
- Isolasi konfigurasi setiap domain
- Skalabilitas lebih baik
- Cocok untuk lingkungan pembelajaran dan produksi
Studi Kasus
Misalkan VPS memiliki IP:
192.168.10.100
Domain yang digunakan:
sekolah.local
lab.local
Struktur direktori:
/var/www/
โโโ sekolah.local
โ โโโ public_html
โ โโโ index.html
โ
โโโ lab.local
โโโ public_html
โโโ index.html
Persiapan Direktori Website
Buat folder website untuk masing-masing domain.
sudo mkdir -p /var/www/sekolah.local/public_html
sudo mkdir -p /var/www/lab.local/public_html
Atur kepemilikan folder.
sudo chown -R www-data:www-data /var/www/sekolah.local
sudo chown -R www-data:www-data /var/www/lab.local
Berikan permission yang sesuai.
sudo chmod -R 755 /var/www
Membuat Halaman Uji Website
Website sekolah.local
sudo nano /var/www/sekolah.local/public_html/index.html
Isi file:
<!DOCTYPE html>
<html>
<head>
<title>Website Sekolah</title>
</head>
<body>
<h1>Selamat Datang di sekolah.local</h1>
</body>
</html>
Website lab.local
sudo nano /var/www/lab.local/public_html/index.html
Isi file:
<!DOCTYPE html>
<html>
<head>
<title>Website Laboratorium</title>
</head>
<body>
<h1>Selamat Datang di lab.local</h1>
</body>
</html>
Membuat Konfigurasi Server Block Nginx
Konfigurasi sekolah.local
Buat file konfigurasi:
sudo nano /etc/nginx/sites-available/sekolah.local
Isi konfigurasi:
server {
listen 80;
server_name sekolah.local www.sekolah.local;
root /var/www/sekolah.local/public_html;
index index.html index.htm;
access_log /var/log/nginx/sekolah_access.log;
error_log /var/log/nginx/sekolah_error.log;
location / {
try_files $uri $uri/ =404;
}
}
Konfigurasi lab.local
sudo nano /etc/nginx/sites-available/lab.local
Isi file:
server {
listen 80;
server_name lab.local www.lab.local;
root /var/www/lab.local/public_html;
index index.html index.htm;
access_log /var/log/nginx/lab_access.log;
error_log /var/log/nginx/lab_error.log;
location / {
try_files $uri $uri/ =404;
}
}
Mengaktifkan Server Block
Buat symbolic link:
sudo ln -s /etc/nginx/sites-available/sekolah.local /etc/nginx/sites-enabled/
sudo ln -s /etc/nginx/sites-available/lab.local /etc/nginx/sites-enabled/
Menguji Konfigurasi Nginx
Lakukan pengecekan konfigurasi.
sudo nginx -t
Jika berhasil akan muncul:
syntax is ok
test is successful
Reload layanan Nginx:
sudo systemctl reload nginx
Atau:
sudo systemctl restart nginx
Konfigurasi Hosts untuk Pengujian Lokal
Karena menggunakan domain lokal, tambahkan konfigurasi pada file hosts.
Linux
sudo nano /etc/hosts
Windows
C:\Windows\System32\drivers\etc\hosts
Tambahkan:
192.168.10.100 sekolah.local
192.168.10.100 lab.local
Simpan perubahan.
Verifikasi Hasil
Buka browser dan akses:
http://sekolah.local
Maka akan tampil:
Selamat Datang di sekolah.local
Selanjutnya:
http://lab.local
Akan tampil:
Selamat Datang di lab.local
Kedua website berjalan pada VPS yang sama namun memiliki konfigurasi terpisah.
Tips Mengelola Banyak Domain di Nginx
Gunakan Struktur Folder yang Konsisten
Contoh:
/var/www/domain/public_html
Dengan struktur yang seragam, proses maintenance menjadi lebih mudah.
Pisahkan Log Setiap Domain
Gunakan file log berbeda agar troubleshooting lebih cepat.
access_log
error_log
Gunakan SSL Let’s Encrypt
Jika domain sudah publik, segera aktifkan HTTPS menggunakan Certbot.
sudo certbot --nginx
Backup Konfigurasi Secara Berkala
Minimal backup:
- Folder website
- Database
- File konfigurasi Nginx
Monitoring Resource VPS
Pantau penggunaan:
htop
atau
top
agar server tetap stabil saat jumlah website bertambah.
Kesalahan yang Sering Terjadi
Server Name Salah
Pastikan nama domain sesuai dengan yang diakses pengguna.
Permission Folder Tidak Tepat
Web server harus memiliki akses membaca file website.
Lupa Reload Nginx
Setelah mengubah konfigurasi, selalu jalankan:
sudo systemctl reload nginx
Konfigurasi Hosts Belum Ditambahkan
Untuk domain lokal, file hosts wajib dikonfigurasi.

Kesimpulan
Virtual Host Nginx atau Server Block merupakan solusi sederhana dan efisien untuk menjalankan banyak website dalam satu VPS. Dengan memisahkan folder, log, dan konfigurasi setiap domain, pengelolaan server menjadi lebih rapi dan profesional.
Melalui studi kasus menggunakan domain sekolah.local dan lab.local, kita dapat melihat bahwa satu server mampu melayani beberapa website secara bersamaan tanpa memerlukan tambahan infrastruktur.
Penerapan teknik ini sangat cocok untuk kebutuhan laboratorium jaringan, pembelajaran administrasi server, hosting internal sekolah, maupun lingkungan produksi skala kecil hingga menengah.
Frequently Asked Questions (FAQ)
1. Apa perbedaan Virtual Host dan Server Block?
Virtual Host adalah istilah umum, sedangkan Server Block adalah implementasi Virtual Host pada Nginx.
2. Apakah satu VPS bisa menampung banyak domain?
Ya. Selama resource VPS mencukupi, satu VPS dapat menjalankan puluhan hingga ratusan domain.
3. Apakah setiap domain harus memiliki IP berbeda?
Tidak. Banyak domain dapat menggunakan satu alamat IP yang sama.
4. Apakah konfigurasi ini bisa digunakan untuk website PHP?
Bisa. Tambahkan konfigurasi PHP-FPM pada masing-masing Server Block.
5. Apakah Server Block mendukung HTTPS?
Ya. Nginx dapat dikombinasikan dengan SSL/TLS menggunakan Let’s Encrypt maupun sertifikat komersial.
6. Apakah cocok digunakan untuk praktikum TKJ?
Sangat cocok karena memberikan pemahaman langsung mengenai web server dan hosting multi-domain.
“Satu server yang terkelola dengan baik dapat melayani banyak kebutuhan tanpa harus menambah biaya infrastruktur.”
Sudah berhasil membuat beberapa domain dalam satu VPS menggunakan Nginx?
Bagikan pengalaman Anda di kolom komentar. Jika artikel ini bermanfaat, jangan lupa membagikannya kepada rekan administrator server, guru TKJ, atau mahasiswa yang sedang belajar Linux Server. Subscribe untuk mendapatkan tutorial terbaru seputar Nginx, Linux, jaringan komputer, dan administrasi server lainnya.