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.

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ğiAçıklamaKomut
BaşlatmaUygulamayı başlatpm2 start app.js
ClusterÇoklu CPU kullanımıpm2 start app.js -i max
İzlemeCanlı monitoringpm2 monit
LogLog dosyalarını görüntülepm2 logs
Yeniden başlatmaOtomatik restartpm2 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 →
A

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