Node.js uygulaması (Express, Nuxt, Next.js, NestJS vb.) yayınlamanın iki yaygın yolu vardır: Node.js destekli bir hosting paketi veya tam kontrol sağlayan bir VDS. Bu yazıda VDS üzerinde klasik ve sağlam bir mimariyi anlatıyoruz.
Mimari
İnternetten gelen istek önce Nginx'e (80/443) ulaşır; Nginx SSL'i sonlandırır ve isteği yerel porttaki Node.js sürecine (ör. 3000) iletir. Node süreci PM2 gibi bir süreç yöneticisiyle çalışır; çökerse yeniden başlar, sunucu açılınca otomatik başlar.
Adım adım
- Sunucuyu güvenli hale getirin. Linux sunucu güvenliği
- Node.js'in LTS sürümünü kurun (NodeSource veya nvm).
- Uygulama kodunu
git cloneile çekin,npm civeyapnpm install --frozen-lockfileile bağımlılıkları kurun, gerekirsebuildalın. - Ortam değişkenlerini (.env) sunucuda tanımlayın; gizli anahtarları depoya koymayın.
- PM2 ile başlatın:
pm2 startardındanpm2 savevepm2 startupile açılışta otomatik başlatmayı etkinleştirin. - Nginx'te alan adı için bir sunucu bloğu oluşturup
proxy_pass http://127.0.0.1:3000;ile Node'a yönlendirin; Upgrade ve Host başlıklarını ayarlayın. - Let's Encrypt (certbot) ile SSL kurun ve HTTP'yi HTTPS'e yönlendirin.
- Güvenlik duvarında yalnızca 22, 80 ve 443 portlarını açın; 3000 portunu dışarıya açmayın.
Güncelleme (deploy) akışı
- Küçük projelerde: git pull → bağımlılık kur → build →
pm2 reload. - Kesintisiz geçiş için
pm2 reload(cluster modunda) kullanın. - Daha büyük ekiplerde CI/CD (GitHub Actions) ile otomatik deploy ve geri alma (rollback) kurun.
- Her deploy öncesi yedek/snapshot alın. Yedekleme rehberi
SEO ve performans notları
- Nuxt/Next gibi çatılarda SSR veya statik önrender kullanın; içerik sunucu HTML'inde olsun. Teknik SEO
- Nginx'te gzip/brotli ve statik dosyalar için uzun Cache-Control başlıkları ayarlayın.
- Log ve hata izleme (PM2 logları, Sentry gibi) kurun.
Sık sorulan sorular
Node.js uygulaması için paylaşımlı hosting yeter mi?
Node.js destekli ve Passenger/benzeri ile çalışan paketlerde küçük uygulamalar çalışabilir. Özel port, WebSocket, arka plan işleri veya yüksek yük için VDS daha uygundur.
PM2 yerine ne kullanabilirim?
systemd servisi veya Docker/Compose da yaygın seçeneklerdir. PM2 küçük projelerde kurulumu en kolay olandır.
Kaynaklar
Bu yazı genel bilgilendirme amaçlıdır; hizmet kapsamı ve güncel özellikler için ilgili ürün sayfasına bakın.