Node.js Uygulamaları İçin Hosting Kurulumu: Adım Adım Rehber
Node.js uygulamanızı yayına almak için doğru hosting altyapısı ve kurulum adımlarını öğrenin. Sunucu seçimi, Node.js kurulumu, SSL, ters proxy ve otomatik deploy süreçlerini adım adım inceleyen rehber.
1. Node.js Uygulamaları İçin Doğru Hosting Seçimi
Node.js tabanlı projelerinizi yayına almak için ihtiyaçlarınıza en uygun hosting türünü belirlemek önemlidir. Node.js, sunucu tarafında JavaScript çalıştırdığı için klasik PHP hosting paketleri genellikle uyumlu değildir. Temel seçenekler şunlardır:
- Paylaşımlı Hosting: Genellikle Node.js desteği sunmaz. Çoğunlukla PHP tabanlı siteler için uygundur.
- VPS (Virtual Private Server): Kendi sunucunuzun kök erişimiyle Node.js ve gerekli servisleri kurabilirsiniz.
- Bulut Sunucular (AWS, Google Cloud, Azure): Yüksek ölçeklenebilirlik ve esneklik sağlar. Fakat kurulum ve yönetim daha teknik bilgi gerektirir.
- Dedicated Sunucular: Büyük ölçekli projeler için tüm donanım kaynaklarını size ayırır.
Node.js uygulamanız için seçtiğiniz hostingin SSH erişimi, güncel Node.js sürümlerini kurabilme imkanı ve güvenliğe dair temel bileşenleri (firewall, güncel yazılım) desteklemesi gerekir.
2. Sunucuya Node.js Kurulumu
Node.js uygulamanızı yayına almak için ilk adım, sunucunuza Node.js ve npm kurmaktır.
-
SSH ile Bağlanma: Sunucuya erişmek için SSH kullanılır. Örneğin:
ssh kullanici@sunucuip -
Node.js ve npm Kurulumu: Ubuntu sunucularda
curl -fsSL https://deb.nodesource.com/setup_current.x | sudo -E bash -ve ardındansudo apt-get install -y nodejskomutlarıyla kurulum yapılabilir. -
Güncel Sürüm Seçimi: LTS (Long Term Support) sürümleri tercih edilir. Sürümü doğrulamak için
node -vvenpm -vkomutları kullanılabilir.
3. Process Manager ve Uygulama Yönetimi: PM2 Kullanımı
Node.js uygulamaları standart olarak node app.js ile başlatılır. Ancak, uygulamanın sunucu kapanmasında veya hata sonrası otomatik başlaması için bir process manager gereklidir.
- Neden Process Manager? Uygulamanın sürekli aktif kalmasını, log yönetimini ve otomatik yeniden başlatmayı sağlar.
-
PM2 ile Çalıştırmak:
npm install pm2 -gile PM2 kurulur.pm2 start app.jskomutu ile uygulama arka planda yönetilir.pm2 savevepm2 startupkomutları ile sistem yeniden başladığında otomatik olarak devreye girer.
4. Ters Proxy Yapılandırması: Nginx veya Apache
Node.js uygulamaları genellikle 3000 veya 8080 gibi özel portlarda çalışır. Web trafiğini 80 veya 443 portuna yönlendirmek için ters proxy gereklidir.
- Ters Proxy Nedir? Kullanıcıdan gelen HTTP(S) isteklerini, arka planda farklı bir portta çalışan uygulamaya yönlendirir.
-
Nginx ile Kurulum:
server { listen 80; server_name ornek.com; location / { proxy_pass http://localhost:3000; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection 'upgrade'; proxy_set_header Host $host; proxy_cache_bypass $http_upgrade; } }
Benzer şekilde Apache de mod_proxy ile Node.js uygulamasına yönlendirme yapabilir.
5. SSL Sertifikası Kurulumu ve HTTPS Yayını
Güvenli bağlantı için HTTPS zorunludur. Ücretsiz SSL sertifikası için Let’s Encrypt sıkça tercih edilir.
-
Let’s Encrypt ile SSL:
certbotaracı ile Nginx veya Apache üzerinde ücretsiz SSL kurulumu yapılabilir. - HTTPS Yönlendirme: SSL kurulduktan sonra, Nginx veya Apache üzerinde HTTP'den HTTPS'ye yönlendirme eklenmelidir.
6. Otomatik Deploy ve CI/CD Süreçleri
Projelerinizi daha hızlı ve hatasız yayınlamak için otomatik deploy ve CI/CD entegrasyonları kullanılabilir.
-
Git ile Deploy: Sunucuda git kurulumu yapılarak
git pullile kod güncellenebilir.post-receivehook’ları ile otomasyon artırılabilir. - CI/CD Sistemleri: GitHub Actions, GitLab CI, Jenkins gibi araçlarla test, build ve deploy adımları otomatikleştirilebilir.
7. Sık Karşılaşılan Sorunlar ve Çözümleri
-
Port Çakışmaları: Uygulamanın çalışacağı portun başka bir servis tarafından kullanılmamasına dikkat edin.
lsof -i :3000ile kontrol sağlanabilir. -
Firewall Ayarları: Uygulamanızın ihtiyaç duyduğu portları açmayı unutmayın. Örneğin:
sudo ufw allow 80,sudo ufw allow 443. - Kaynak Yönetimi: Sunucunun RAM ve CPU kaynaklarını izleyin. Gerektiğinde ölçeklendirme yapın.
- Performans İpuçları: Gzip, cache ve CDN gibi ek performans artırıcıları değerlendirin.
8. Sonuç: Node.js Uygulamanızı Güvenli ve Performanslı Şekilde Yayına Alma
Node.js uygulamanız için uygun hosting seçimi, doğru kurulum adımları, güvenli bağlantı ve otomasyon süreçleri ile projenizi güvenle yayına alabilirsiniz. Sunucu yönetimi konusunda temel bilgilere sahip olmak, olası sorunları hızlıca çözmenizi sağlar.
Kendi özel yazılımınızı yayınlamak veya barındırmak için genel web hosting çözümleri arıyorsanız, buradan detaylı bilgi alabilirsiniz.