Deploy Banyak Proyek di Satu VPS: Struktur Nginx yang Saya Pakai
Saya punya beberapa side project yang jalan bareng di satu VPS — mulai dari situs personal ini, aplikasi lain, sampai beberapa domain kecil. Daripada sewa server terpisah per proyek (mahal dan boros), saya pakai satu VPS dengan Nginx sebagai reverse proxy/static file server buat semuanya.
Struktur yang saya pakai cukup standar tapi konsisten:
Satu file config per domain. Tiap proyek punya file config sendiri di /etc/nginx/sites-available/, di-symlink ke sites-enabled/ kalau aktif. Ini bikin gampang enable/disable proyek tanpa ganggu yang lain.
Static site vs proxy, dibedain jelas. Proyek static (kayak situs ini) langsung root ke direktori file hasil build. Proyek yang butuh backend (misalnya app dengan API) pakai proxy_pass ke port lokal tempat aplikasinya jalan.
SSL per domain, dikelola Certbot. Tiap domain punya sertifikat sendiri, auto-renew lewat Certbot. Nggak ada wildcard cert campur aduk yang bikin ribet kalau salah satu domain kena masalah.
Isolasi resource kalau perlu. Buat aplikasi yang lebih berat, saya jalanin di Docker container terpisah, Nginx tetap jadi entry point tunggal yang proxy ke port container masing-masing.
Manfaat terbesarnya: satu VPS bisa efisien nampung banyak proyek kecil-menengah, dan kalau salah satu proyek butuh maintenance, yang lain nggak ikut kena dampak — asal config-nya emang dipisah dengan benar.