BlogSunucu

Node.js Uygulaması Nasıl Yayınlanır? VDS'te Nginx, PM2 ve SSL

Node.js uygulamasını VDS veya hosting üzerinde yayına alma rehberi: Node kurulumu, PM2 ile süreç yönetimi, Nginx ters vekil, SSL ve güncelleme akışı.

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

  1. Sunucuyu güvenli hale getirin. Linux sunucu güvenliği
  2. Node.js'in LTS sürümünü kurun (NodeSource veya nvm).
  3. Uygulama kodunu git clone ile çekin, npm ci veya pnpm install --frozen-lockfile ile bağımlılıkları kurun, gerekirse build alın.
  4. Ortam değişkenlerini (.env) sunucuda tanımlayın; gizli anahtarları depoya koymayın.
  5. PM2 ile başlatın: pm2 start ardından pm2 save ve pm2 startup ile açılışta otomatik başlatmayı etkinleştirin.
  6. 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.
  7. Let's Encrypt (certbot) ile SSL kurun ve HTTP'yi HTTPS'e yönlendirin.
  8. 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.