Buyukweb
PM2 ile Node.js Uygulama Yönetimi: Üretim Ortamı Rehberi

PM2 ile Node.js Uygulama Yönetimi: Üretim Ortamı Rehberi

PM2 ile Node.js uygulamaları nasıl yönetilir? Uygulama başlatma, otomatik yeniden başlatma, cluster modu, log yönetimi ve PM2 ecosystem dosyası rehberi.

Büyükweb Teknik Ekibi7 Ağustos 20257 dakika okuma

PM2 ile Node.js Uygulama Yönetimi: Üretim Ortamı Rehberi

PM2 (Process Manager 2), Node.js uygulamaları için geliştirilmiş güçlü bir process manager'dır. Uygulamanızın çökmesi durumunda otomatik yeniden başlatma, sistem yeniden başladığında otomatik başlama ve çoklu işlemci çekirdeğinden yararlanmak için cluster modu gibi özellikleri ile üretim ortamları için ideal bir araçtır.

PM2 Neden Kullanılır?

  • Otomatik yeniden başlatma: Uygulama çöktüğünde PM2 anında yeniden başlatır
  • Sistem başlangıcında otomatik başlatma: Sunucu yeniden başladığında uygulama otomatik devreye girer
  • Cluster modu: Çok çekirdekli CPU'dan tam yararlanma
  • Log yönetimi: Merkezi log sistemi ve log rotasyonu
  • Sıfır kesinti güncellemesi: Yeni sürümü kesinti olmadan deploy etme
  • Kaynak izleme: CPU ve RAM kullanımı gerçek zamanlı takip

PM2 Kurulumu

# npm ile global kurulum
npm install -g pm2

# Sürüm kontrolü
pm2 --version

Temel PM2 Komutları

Uygulama Başlatma

# Temel başlatma
pm2 start app.js

# İsim ile başlatma
pm2 start app.js --name "buyukweb-api"

# Çevre değişkeni ile
pm2 start app.js --env production

# NPM script ile
pm2 start npm --name "nextjs" -- start

# Belirli port ile
pm2 start app.js --name "api" -- --port 3001

Uygulama Yönetimi

pm2 list              # Tüm uygulamaları listele
pm2 status            # pm2 list ile aynı

pm2 stop buyukweb-api     # Durdur
pm2 start buyukweb-api    # Başlat
pm2 restart buyukweb-api  # Yeniden başlat
pm2 delete buyukweb-api   # Sil (pm2 listesinden)

pm2 stop all          # Tümünü durdur
pm2 restart all       # Tümünü yeniden başlat

Log Yönetimi

pm2 logs              # Tüm loglar (canlı)
pm2 logs buyukweb-api # Belirli uygulama logu
pm2 logs --lines 100  # Son 100 satır

pm2 flush             # Tüm logları temizle

İzleme

pm2 monit             # Interaktif monitör
pm2 show buyukweb-api # Detaylı bilgi

Ecosystem Konfigürasyon Dosyası

Karmaşık yapılandırmalar için ecosystem.config.js kullanın:

module.exports = {
  apps: [
    {
      name: 'buyukweb-website',
      script: 'node_modules/.bin/next',
      args: 'start',
      cwd: '/home/buyukweb.com/public_html',
      instances: 'max',        // Tüm CPU çekirdekleri
      exec_mode: 'cluster',    // Cluster modu
      autorestart: true,
      watch: false,
      max_memory_restart: '1G', // 1GB üzerinde yeniden başlat
      env: {
        NODE_ENV: 'production',
        PORT: 3000
      },
      error_file: '/home/buyukweb.com/logs/pm2-error.log',
      out_file: '/home/buyukweb.com/logs/pm2-out.log',
      log_date_format: 'YYYY-MM-DD HH:mm:ss',
      merge_logs: true,
    },
    {
      name: 'api-server',
      script: 'src/server.js',
      cwd: '/home/api/public_html',
      instances: 2,
      exec_mode: 'cluster',
      env_production: {
        NODE_ENV: 'production',
        PORT: 4000,
        DB_HOST: 'localhost',
      }
    }
  ]
};

Ecosystem ile Başlatma

pm2 start ecosystem.config.js
pm2 start ecosystem.config.js --env production
pm2 reload ecosystem.config.js   # Sıfır kesinti yeniden yükleme

Cluster Modu

Cluster modu, Node.js'in single-threaded yapısını aşarak çok çekirdekli CPU'dan yararlanır.

# Tüm çekirdekleri kullan
pm2 start app.js -i max

# Belirli sayıda instance
pm2 start app.js -i 4

Cluster modu için uygulama stateless olmalıdır. Oturum verilerini Redis'te saklayın.

Sistem Başlangıcında Otomatik Başlatma

# Startup scripti oluştur
pm2 startup

# Komutu kopyalayıp çalıştırın (örn.)
sudo env PATH=$PATH:/usr/bin /usr/lib/node_modules/pm2/bin/pm2 startup systemd -u kullanici --hp /home/kullanici

# Mevcut durumu kaydet
pm2 save

Artık sunucu yeniden başladığında PM2 uygulamaları otomatik başlatacak.

Sıfır Kesinti Güncellemesi

# Yeni kodu deploy et
git pull

# Bağlantı kesmeden yeniden yükle (cluster modu için)
pm2 reload buyukweb-website

# Veya tümünü
pm2 reload all

pm2 reload, yeni instance'ları başlatıp eski olanları kapatarak kesinti oluşturmaz.

Log Rotasyonu

# PM2 log rotate modülü
pm2 install pm2-logrotate

# Ayarlar
pm2 set pm2-logrotate:max_size 10M
pm2 set pm2-logrotate:retain 7
pm2 set pm2-logrotate:compress true

PM2 Plus (Uzak İzleme)

PM2 Plus, bulut tabanlı gerçek zamanlı izleme sunar:

pm2 link <secret_key> <public_key>

pm2.io üzerinden:

  • Gerçek zamanlı CPU/RAM grafiği
  • Hata bildirimleri
  • Deployment geçmişi

Büyükweb VDS ile PM2

Büyükweb VDS sunucular üzerinde Node.js ve PM2 ile tam üretim ortamı kurabilirsiniz. Next.js, Express, Fastify gibi framework'ler PM2 ile kolayca yönetilebilir.

Sonuç

PM2, Node.js uygulamalarını üretim ortamına taşımanın en pratik yoludur. Ecosystem konfigürasyon dosyası, cluster modu ve otomatik yeniden başlatma özellikleri ile uygulamanızı güvenilir ve ölçeklenebilir biçimde çalıştırmanızı sağlar. Büyükweb'in Node.js üzerinde çalışan blog sistemi de PM2 ile yönetilmektedir.


Sunucu Guvenligi En Iyi Uygulamalar

Sunucu guvenligi surekli dikkat gerektiren bir surectir.

Guvenlik Duvari

UFW veya firewalld ile yalnizca gerekli portlari acin. SSH, HTTP, HTTPS disindaki portlari kapatin. IP whitelist kullanin.

Log Analizi

fail2ban ile basarisiz giris denemelerini otomatik engelleyin. Logwatch ile gunluk raporlar olusturun. ELK Stack ile merkezi log yonetimi kurun.

Kullanici Yonetimi

Her yonetici icin ayri hesap, root kullanmayin. sudo ile yetki verin. SSH anahtar kimlik dogrulamayi zorunlu kilin.

Dosya Butunlugu

AIDE veya Tripwire ile degisiklikleri izleyin. /tmp noexec ile mount edin. chroot ile izolasyon saglayin.

Yedekleme

3-2-1 kuralini uygulayin. Yedekleri test edin. Ransomware icin offline kopya tutun.

Sunucu Izleme

Zabbix, Prometheus+Grafana veya Netdata ile izleme yapin. Alarm kurallari tanimlayin. Uptime monitoring icin UptimeRobot kullanin. Kapasite planlamasi yaparak gelecekteki ihtiyaclari onceden belirleyin.

Sik Sorulan Sorular

Sunucum hacklendi ne yapmaliyim?

Izole edin, loglari inceleyin, temiz yedekten geri yukleyin, parolalari degistirin.

Restart oncesi ne yapmaliyim?

Aktif kullanicilari kontrol edin, servisleri kaydedin, restart sonrasi dogrulayin.

Sonuc

Sunucu guvenligi katmanli yaklasim gerektirir. Yukardaki uygulamalari sistematik olarak hayata gecirin. Buyukweb 7/24 destek ekibi yardimci olabilir.

Sunucu Bakim Takvimi

Duzenli bakim sunucu sagliginin anahtaridir:

Gunluk

  • Log dosyalarini kontrol edin
  • Disk kullanimini izleyin
  • Yedeklerin basarisini dogrulayin
  • Guvenlik uyarilarini inceleyin

Haftalik

  • Guvenlik guncellemelerini uygulayin
  • Veritabani optimizasyonu calistirin
  • Performans metriklerini analiz edin

Aylik

  • Tam sistem yedegi alin ve test edin
  • Kullanici hesaplarini gozden gecirin
  • SSL sertifika surelerini kontrol edin
  • Kapasite planlama degerlendirmesi yapin

Yillik

  • Felaket kurtarma tatbikati yapin
  • Donanim yasam dongusu degerlendirmesi
  • Guvenlik denetimi yapin

Sunucu Migrasyon Rehberi

  1. Mevcut sunucu envanterini cikartin
  2. Yeni sunucuyu hazirlayin ve yapilandirin
  3. Verileri rsync ile senkronize edin
  4. DNS TTL degerini dusurrun
  5. Son senkronizasyonu yapin ve servisleri baslatin
  6. DNS kayitlarini guncelleyin
  7. Eski sunucuyu bir sure yedek tutun

Profesyonel Hosting icin Onemli Kriterler

Veri Merkezi Kalitesi

Veri merkezinin tier seviyesi, sunucu barindirma kalitesini dogrudan etkiler. Tier 3 veri merkezleri yedekli guc, soğutma ve ag altyapisi ile %99.982 uptime garantisi sunar. Buyukweb'in Bursa Pendc Tier 3 veri merkezi bu standartlari karsilamaktadir.

Teknik Destek Kalitesi

7/24 ulasılabilir, Turkce ve teknik bilgi sahibi destek ekibi hosting hizmetinin vazgecilmez parcasidir. E-posta, canli destek ve telefon kanallarindan hizli yanit almak ozellikle is surekliligi acisından kritiktir.

Olceklenebilirlik

Isletmeniz buyudukce hosting ihtiyaclariniz da degisir. Paylasimli hostingten VDS'e, VDS'den dedicated sunucuya sorunsuz gecis yapabilmek uzun vadeli planlamaniz icin onemlidir. Buyukweb tum bu gecis sureclerini ucretsiz olarak yonetir.

Yedekleme ve Felaket Kurtarma

Gunluk otomatik yedekleme, tek tikla geri yukleme ve uzak yedekleme secenekleri veri guvenliginiz icin sart. JetBackup ile profesyonel yedekleme cozumu tum Buyukweb hosting paketlerinde standarttir.

Guvenlik Katmanlari

SSL sertifikasi, WAF korumasi, malware tarama, DDoS korumasi ve guvenlik duvari - tum bu katmanlar birlikte calisiarak web sitenizi korur. Buyukweb bu guvenliklerin hepsini standart olarak sunar.

Uygulama ve Proje Ornekleri

Hosting ve sunucu hizmetleri farkli sektorlerde farkli ihtiyaclara karsilik gelir:

Kurumsal Web Sitesi

Sirket tanitim sitesi, blog, kariyer sayfasi ve iletisim formu icin paylasimli hosting yeterlidir. SSL, e-posta ve yedekleme dahil. cPanel ile kolay yonetim.

E-Ticaret Magaza

WooCommerce veya PrestaShop ile online magaza kurmak icin VDS oneriyoruz. Urun gorselleri, siparis yonetimi ve odeme entegrasyonu icin daha fazla kaynak gerekir.

SaaS Uygulamasi

Kendi yaziliminizi barindirmak icin dedicated sunucu veya VDS idealdir. Tam root erisim, ozel yapilandirma ve yuksek performans gerektirir.

Oyun Sunucusu

Multiplayer oyunlar icin dusuk gecikme suresi ve yuksek CPU performansi sart. GPU VDS ile grafik islem gerektiren oyun sunuculari calistirabilirsiniz.

Gelistirme Ortami

Test, staging ve CI/CD icin uygun fiyatli VDS paketleri kullanin. Docker ile gelistirme ortamlarinizi standartlastirin.

Her senaryo icin en uygun cozumu belirlemek icin Buyukweb teknik ekibine danisin: 0850 302 60 70.

Etiketler:

#node.js#pm2#sunucu#server yönetimi#sistem yönetimi

Bu yazıyı paylaş