Node.js nedir?
Node.js, JavaScript'i tarayıcı dışında, sunucuda çalıştırmayı sağlayan açık kaynaklı bir çalışma ortamıdır. V8 JavaScript motoru üzerine kuruludur ve olay tabanlı, engellemeyen G/Ç modeliyle çok sayıda eşzamanlı bağlantıyı az kaynakla yönetebilir. Web API'leri, gerçek zamanlı uygulamalar ve araç zincirleri için yaygındır.
Aynı dilin hem istemci hem sunucu tarafında kullanılabilmesi, geliştirme sürecini kolaylaştırır. Paketler npm üzerinden dağıtılır ve bağımlılık sayısı çoğu projede yüksektir.
Nasıl çalışır?
Node.js uygulamaları tek bir ana iş parçacığında olay döngüsüyle çalışır. Dosya, ağ ve veritabanı işlemleri asenkron yürütülür; bir işlem beklerken döngü diğer istekleri işler. CPU yoğun işlerde ise döngü tıkanabilir, bu yüzden işçi iş parçacıkları ya da ayrı süreçler kullanılır.
Çok çekirdekli sunucularda kapasiteyi kullanmak için küme (cluster) modülü veya bir süreç yöneticisi ile birden çok süreç başlatılır. Sürümlerin uzun süreli destek (LTS) olanları üretim için tercih edilir.
Sunucu ve hosting ortamında
Node.js uygulamaları genellikle systemd servisi veya PM2 gibi bir süreç yöneticisiyle çalıştırılır ve önüne Nginx ya da Apache ters vekil olarak konur. Uygulama yalnızca yerel bir portu dinler; TLS, sıkıştırma ve statik dosyalar ters vekilde işlenir. Bazı kontrol panelleri Node.js uygulama yönetimini kendi arayüzünde sunar.
Nasıl korunulur?
- Uygulamayı root olarak değil, yetkisiz ayrı bir kullanıcıyla çalıştırın.
- Yalnızca LTS sürümlerini kullanın ve sürümün destek süresini takip edin.