Beberapa situs di satu server
Cara meng-hosting belasan situs di satu VPS: tata letak direktori, konfigurasi dan pengguna terpisah, sertifikat bersama, serta memperkirakan beban berdasarkan tier.
Diperbarui 23 Agustus 2026
Satu alamat IPv4 publik dapat melayani berapa pun domain: web server merutekan permintaan berdasarkan header Host. Batasnya bukan jumlah alamat — melainkan memori dan disk dari tier Anda.
Tata letak
Simpan satu templat, atau dalam enam bulan Anda tidak akan bisa membedakan situs mana milik siapa:
/var/www/example.ru/public
/var/www/example.ru/logs
/var/www/shop.ru/public
/var/www/shop.ru/logs
Simpan file konfigurasi terpisah per situs: /etc/nginx/sites-available/<domain>, diaktifkan melalui symlink di sites-enabled. Menonaktifkan situs berarti menghapus satu symlink dan memuat ulang, alih-alih mencari bagian yang tepat di file bersama.
Konfigurasi
server {
listen 80;
server_name example.ru www.example.ru;
root /var/www/example.ru/public;
index index.html index.php;
access_log /var/www/example.ru/logs/access.log;
}
Siapkan juga "situs catch-all" untuk domain yang tidak dikenal, jika tidak, konfigurasi pertama secara alfabetis akan terbuka untuk domain pihak ketiga mana pun yang diarahkan ke alamat Anda:
server {
listen 80 default_server;
server_name _;
return 444;
}
Memisahkan izin
Jika situs-situs tersebut milik klien atau proyek yang berbeda, jangan beri mereka user bersama: celah pada satu skrip berarti akses ke semuanya.
useradd -r -d /var/www/example.ru -s /usr/sbin/nologin site-example
chown -R site-example:www-data /var/www/example.ru
chmod 750 /var/www/example.ru
Untuk PHP, buat pool FPM terpisah per situs dengan user dan listen-nya sendiri — lihat PHP-FPM. Pisahkan juga database Anda: user dan grant.
Sertifikat
Satu kali menjalankan certbot mencakup beberapa domain sekaligus:
certbot --nginx -d example.ru -d www.example.ru -d shop.ru -d www.shop.ru
Perpanjangan bersifat bersama, satu timer. Detailnya — Let's Encrypt.
Berapa banyak situs yang muat
Hitung berdasarkan memori, bukan jumlah domain. Situs statis hampir tidak memakan apa pun; situs CMS dengan database memakan ratusan megabyte.
| Tier | Memori | Panduan |
|---|---|---|
| VDS-1 (2 GB) | 2 GB | 1–2 situs CMS atau selusin situs statis |
| VDS-2 (4 GB) | 4 GB | 3–5 situs CMS |
| VDS-3 (8 GB) | 8 GB | 8–12 situs CMS |
Disk juga terbatas: 40 GB pada VDS-1, 250 GB pada VDS-6. Anda hanya dapat meningkatkan paket, dengan membayar selisihnya untuk sisa hari dalam periode berbayar.
Kesalahan umum
| Gejala | Penyebab |
|---|---|
| Semua domain menampilkan situs yang sama | server_name tidak cocok, sehingga blok pertama yang menangani permintaan |
| Log dari semua situs dalam satu file | access_log tidak diatur di blok situs |
| Satu situs membuat semuanya tumbang | Pool PHP-FPM bersama tanpa batas |
| Kehabisan ruang disk | Log dan backup di disk yang sama — atur logrotate |
Sebelum menambahkan situs lain, periksa grafik memori selama seminggu terakhir di "Overview" panel pada
/hosting/vds/m/<id>. Jika puncaknya sudah mentok, situs baru akan menjadi penyebab crash, bukan akibatnya.