
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.
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
- Mevcut sunucu envanterini cikartin
- Yeni sunucuyu hazirlayin ve yapilandirin
- Verileri rsync ile senkronize edin
- DNS TTL degerini dusurrun
- Son senkronizasyonu yapin ve servisleri baslatin
- DNS kayitlarini guncelleyin
- 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:

