Node.js Uygulamasını Production'a Taşıma: PM2 ve Nginx Rehberi
Node.js uygulamanızı PM2 process manager ve Nginx reverse proxy ile production ortamına güvenli şekilde taşıyın. Tam kurulum ve yapılandırma rehberi dahil.
Ahmet Yılmaz
Kıdemli Altyapı Mühendisi
Node.js uygulamanızı geliştirme ortamında node app.js ile çalıştırmak production için yeterli değildir. Node.js production ortamında PM2 process manager ile uygulamanızı yönetmeli, Nginx reverse proxy ile HTTP isteklerini yönlendirmeli ve SSL sertifikası ile güvenliği sağlamalısınız. Bu rehberde tüm bu adımları detaylı şekilde anlatıyoruz.
PM2 Process Manager
PM2, Node.js uygulamalarını production ortamında çalıştırmak için tasarlanmış bir process manager'dır. Otomatik yeniden başlatma, cluster mode ile çoklu CPU kullanımı, log yönetimi ve monitoring özellikleri sunar.
Cluster Mode ile Performans
PM2 cluster mode, Node.js uygulamanızı sunucunuzdaki tüm CPU çekirdeklerinde çalıştırır. 4 çekirdekli bir bulut sunucuda 4 worker process oluşturarak eş zamanlı istek kapasitesini 4 katına çıkarabilirsiniz.
| PM2 Özelliği | Açıklama | Komut |
|---|---|---|
| Başlatma | Uygulamayı başlat | pm2 start app.js |
| Cluster | Çoklu CPU kullanımı | pm2 start app.js -i max |
| İzleme | Canlı monitoring | pm2 monit |
| Log | Log dosyalarını görüntüle | pm2 logs |
| Yeniden başlatma | Otomatik restart | pm2 startup |
Nginx Reverse Proxy Yapılandırması
Nginx, Node.js uygulamanızın önünde reverse proxy olarak çalışır. Statik dosya sunumu, SSL termination, gzip sıkıştırma ve rate limiting gibi görevleri üstlenir. Node.js doğrudan HTTP isteklerini işlemek yerine yalnızca uygulama mantığına odaklanır.
💡 İpucu: Nginx'de proxy_pass ile Node.js uygulamanıza yönlendirme yaparken proxy_set_header X-Real-IP $remote_addr eklemeyi unutmayın. Aksi halde uygulamanız tüm istekleri 127.0.0.1'den geliyormuş gibi görür.
SSL Sertifikası ve Güvenlik
Let's Encrypt ile ücretsiz SSL sertifikası alın ve Nginx'de HTTPS yapılandırın. Certbot aracı otomatik yenileme desteği sunar. HTTP isteklerini HTTPS'e yönlendirerek tüm trafiğin şifreli olmasını sağlayın.
⚠️ Önemli: Node.js uygulamanızı asla root kullanıcısıyla çalıştırmayın. Güvenlik açığı durumunda saldırgan root yetkilerine erişir. Ayrılmış bir kullanıcı oluşturun ve PM2'yi bu kullanıcıyla çalıştırın.
Sıkça Sorulan Sorular
PM2 ile forever arasındaki fark nedir?
PM2 cluster mode, monitoring dashboard, log yönetimi ve ecosystem dosyası desteği sunar. Forever yalnızca process'i canlı tutar. Production için PM2 önerilir.
Node.js production için ne kadar RAM gerekir?
Basit bir API için 1-2 GB yeterlidir. Web uygulaması ve veritabanı bağlantıları için 4 GB önerilir. Cluster mode'da her worker ek bellek tüketir.
Nginx yerine Apache kullanabilir miyim?
Evet, ancak Nginx reverse proxy performansında Apache'den üstündür. Eş zamanlı bağlantı yönetiminde Nginx event-driven mimarisi sayesinde daha verimlidir.
Sonuç
Node.js production ortamınızı PM2 process manager, Nginx reverse proxy ve SSL sertifikası ile güvenli ve performanslı şekilde yapılandırın. Cluster mode ile CPU kaynaklarınızı tam kullanın ve otomatik yeniden başlatma ile kesintisiz hizmet sunun.
Node.js İçin Production Sunucu
PM2 ve Nginx ile Node.js uygulamanızı Hosted Cloud bulut sunucularında çalıştırın.
Bulut Sunucu Planlarını İncele →Ahmet Yılmaz
Kıdemli Altyapı Mühendisi
10 yılı aşkın bulut altyapısı ve DevOps deneyimiyle Hosted Cloud'un teknik ekibinde yer almaktadır. Kubernetes, Terraform ve yüksek erişilebilirlik mimarileri üzerine uzmanlaşmıştır.
Yorumlar yakında