Punya satu VPS tapi pengen jalanin beberapa situs sekaligus? Bisa banget, dan kamu nggak perlu sewa server terpisah buat tiap domain. Ini jauh lebih hemat. Rahasianya ada di fitur nginx bernama server block (kalau di Apache namanya virtual host). Intinya, server block yang bikin nginx bisa ngebedain domain mana yang lagi diminta pengunjung, terus nyajiin situs yang pas. Nah, di sini kita bakal setup dari nol sampai kedua situs beneran jalan.
Apa Itu Server Block?
Gampangnya, server block itu blok konfigurasi yang ngasih tahu nginx: "kalau ada yang minta domain A, kasih folder ini; kalau domain B, kasih folder itu". Satu VPS bisa nampung puluhan server block, asal sumber dayanya masih kuat.
Sebelum lanjut, pastikan kamu udah punya VPS yang siap dan nginx-nya udah terpasang. Kalau belum, mampir dulu ke setup VPS Ubuntu untuk pemula biar server kamu siap dipakai.
Persiapan Awal
Pertama-tama, cek dulu nginx udah keinstal apa belum:
nginx -v
Kalau ternyata belum ada, tinggal pasang:
sudo apt update
sudo apt install nginx -y
Berikutnya, dua domain yang mau kamu pakai harus udah ngarah ke IP VPS lewat DNS. Caranya, bikin record A di masing-masing domain yang nunjuk ke alamat IP server kamu. Tanpa ini server block nggak bakal jalan, soalnya domain-nya belum "kenal" sama servernya.
Membuat Struktur Folder
Biasakan tiap situs punya folder sendiri, biar rapi. Anggap aja kita punya dua domain: situssatu.com sama situsdua.com.
sudo mkdir -p /var/www/situssatu.com/html
sudo mkdir -p /var/www/situsdua.com/html
Terus atur kepemilikan dan izinnya, supaya nginx bisa baca file-nya:
sudo chown -R $USER:$USER /var/www/situssatu.com/html
sudo chown -R $USER:$USER /var/www/situsdua.com/html
sudo chmod -R 755 /var/www
Sekalian bikin halaman uji sederhana buat masing-masing situs:
echo "<h1>Halo dari Situs Satu</h1>" > /var/www/situssatu.com/html/index.html
echo "<h1>Halo dari Situs Dua</h1>" > /var/www/situsdua.com/html/index.html
Membuat File Server Block
nginx baca konfigurasi tiap situs dari folder /etc/nginx/sites-available, terus ngaktifinnya lewat symlink ke sites-enabled. Kita bikin file yang pertama dulu:
sudo nano /etc/nginx/sites-available/situssatu.com
Isi dengan konfigurasi ini:
server {
listen 80;
listen [::]:80;
root /var/www/situssatu.com/html;
index index.html;
server_name situssatu.com www.situssatu.com;
location / {
try_files $uri $uri/ =404;
}
}
Yang paling penting di sini adalah server_name. Bagian inilah yang dipakai nginx buat nyocokin domain sama blok yang bener. Sementara root nunjuk ke folder tempat file situsnya.
Buat file kedua polanya sama persis, tinggal ganti nama domain sama path-nya:
server {
listen 80;
listen [::]:80;
root /var/www/situsdua.com/html;
index index.html;
server_name situsdua.com www.situsdua.com;
location / {
try_files $uri $uri/ =404;
}
}
Mengaktifkan Server Block
Sekarang bikin symlink dari sites-available ke sites-enabled buat kedua situs:
sudo ln -s /etc/nginx/sites-available/situssatu.com /etc/nginx/sites-enabled/
sudo ln -s /etc/nginx/sites-available/situsdua.com /etc/nginx/sites-enabled/
Sebelum reload, biasakan uji konfigurasinya dulu. Langkah ini yang bakal nyelametin kamu dari nginx yang gagal start cuma gara-gara salah ketik:
sudo nginx -t
Kalau muncul pesan syntax is ok sama test is successful, berarti aman, lanjut reload:
sudo systemctl reload nginx
Nah, sekarang coba buka kedua domain di browser. Keduanya harusnya nampilin halaman yang beda. Selamat, satu VPS kamu udah bisa ngelayanin banyak domain sekaligus.
Tips Tambahan
Beberapa hal yang lumayan kepake pas kamu ngurus banyak domain:
- Kasih nama file sesuai domain. Biar gampang inget file mana buat situs yang mana.
- Hapus konfigurasi default kalau nggak dipakai. Jalanin
sudo rm /etc/nginx/sites-enabled/defaultbiar nggak bentrok. - Pasang HTTPS di tiap domain. Setelah server block jalan, amankan pakai SSL gratis lewat Cara pasang SSL Let's Encrypt gratis di nginx.
FAQ
Berapa banyak domain yang bisa ditampung satu VPS?
Dari sisi nginx sendiri sih nggak ada batasnya. Yang jadi batasan itu RAM, CPU, sama bandwidth VPS kamu. VPS kecil masih sanggup nampung banyak situs statis yang ringan, tapi kalau situsnya berat ya butuh sumber daya lebih gede.
Kenapa domain saya malah nampilin situs yang salah?
Biasanya sih gara-gara server_name ketuker, atau DNS-nya belum ngarah ke IP yang bener. Coba cek lagi dua hal itu, terus reload nginx.
Perlu restart atau cukup reload aja?
Cukup reload kok buat nerapin perubahan konfigurasi tanpa mutus koneksi yang lagi jalan. Restart baru perlu kalau ada perubahan besar atau pas nginx-nya lagi bermasalah.
Penutup
Dengan server block, satu VPS bisa jadi rumah buat banyak situs sekaligus, dan ini jelas ngirit biaya banget. Polanya selalu itu-itu aja: bikin folder, bikin file konfigurasi, aktifin symlink, uji, terus reload.
Satu kebiasaan kecil yang wajib kamu pegang: selalu jalanin sudo nginx -t sebelum reload. Sepele, tapi ini yang nyegah kamu dari downtime dadakan cuma gara-gara satu typo.