# CentOS 7 Sunucusuna Node.js Kurulumu: Adım Adım Kılavuz
Meta Açıklaması: CentOS 7 sunucunuza Node.js kurulumunu adım adım öğrenin. Bu kapsamlı kılavuzda, temel kavramlardan performans optimizasyonuna kadar her şeyi bulacaksınız. Yeni başlayanlar için basit kurulumdan ileri düzey kullanıcılar için performans analizi tekniklerine kadar geniş bir yelpazede bilgi sunuyoruz. Hemen başlayın!
Modern web uygulamalarının kalbi olan Node.js’i CentOS 7 sunucunuza kurmak istiyorsunuz, ancak nereden başlayacağınızı bilmiyor musunuz? Karmaşık komut satırı işlemlerinden endişe duyuyor ve kurulum sonrası performans optimizasyonunun inceliklerini öğrenmek istiyor musunuz? Bu kapsamlı kılavuz, sizi adım adım CentOS 7 sunucunuza Node.js kurulumunda yönlendirecek ve performansınızı en üst düzeye çıkarmanız için ipuçları verecektir.
1. Node.js ve npm: Temel Kavramlar
Node.js, Google Chrome’un V8 JavaScript motorunu kullanan, sunucu tarafında JavaScript çalıştırmanıza olanak tanıyan açık kaynaklı, çapraz platform bir JavaScript çalışma zamanıdır. Bu, JavaScript’in sadece web tarayıcılarında değil, aynı zamanda sunucularda da güçlü uygulamalar geliştirmek için kullanılabileceği anlamına gelir. Node.js’in en büyük avantajlarından biri, olay döngüsü mimarisidir. Bu mimari, yüksek performanslı, ölçeklenebilir ağ uygulamaları geliştirmeyi kolaylaştırır. NPM (Node Package Manager), Node.js ile birlikte gelen ve JavaScript kütüphanelerini ve modüllerini yönetmenizi sağlayan bir paket yöneticisidir. Binlerce açık kaynaklı paket, projelerinize kolayca entegre edilebilir fonksiyonlar sunmaktadır. Örneğin, bir web sunucusu oluşturmak için Express.js gibi bir çerçeveyi veya veritabanıyla etkileşim için Mongoose gibi bir ORM’yi NPM aracılığıyla kolayca kurabilirsiniz. Bu, geliştirme sürecini hızlandırır ve kod tekrarını azaltır.
2. CentOS 7 Sunucusunda Gerekli Paketlerin Kurulumu: Nasıl Yapılır?
Node.js’i CentOS 7’ye kurmadan önce, sisteminizin güncel olduğundan emin olmalısınız. Bu, güvenlik açıklarını önlemek ve kurulum sırasında olası sorunları en aza indirmek için çok önemlidir. Bunun için aşağıdaki komutu çalıştırın:
sudo yum update
Daha sonra, Node.js’i derlemek için gerekli olan geliştirme araçlarını kurmalıyız. Bu araçlar, Node.js kaynak kodunu derlemek için ihtiyaç duyulan derleyici ve kütüphaneleri içerir:
sudo yum groupinstall "Development Tools"
Bu komut, gcc, make, g++ gibi önemli araçları kuracaktır. Sisteminizde zaten bu araçlar varsa, hata mesajı almadan komut başarıyla tamamlanır.
3. Node.js’in Resmi Deposunun Eklenmesi ve Kurulumu: Adım Adım
CentOS’un resmi depolarında Node.js’in en son sürümü bulunmayabilir. Bu nedenle, NodeSource’un resmi deposunu ekleyerek daha güncel ve kararlı sürümleri kullanabiliriz. Aşağıdaki komutları sırasıyla çalıştırın:
curl -sL https://rpm.nodesource.com/setup_16.x | bash -
sudo yum install nodejs
İlk komut, NodeSource’un 16.x LTS (Long Term Support) sürümü için kurulum betiğini indirir ve çalıştırır. İkinci komut ise Node.js’i ve npm’yi sisteminize kurar. Farklı bir LTS sürümü istiyorsanız, 16.x yerine ilgili sürüm numarasını kullanabilirsiniz (örneğin, 14.x veya 18.x). Kurulum tamamlandıktan sonra, aşağıdaki komutlarla Node.js ve npm sürümlerini doğrulayabilirsiniz:
node -v
npm -v
Bu komutlar, kurulu Node.js ve npm sürümlerini ekrana yazdıracaktır.
4. Node.js ve npm’nin Doğru Çalıştığının Test Edilmesi: Bir Örnek Uygulama
Kurulumun başarılı olup olmadığını test etmek için basit bir “Merhaba Dünya” uygulaması oluşturabiliriz. Aşağıdaki adımları izleyin:
1. Yeni bir dizin oluşturun: mkdir hello-world
2. Dizine girin: cd hello-world
3. Yeni bir JavaScript dosyası oluşturun: touch index.js
4. Dosyayı açın ve aşağıdaki kodu yazın:
const http = require('http');
const hostname = '127.0.0.1';
const port = 3000;
const server = http.createServer((req, res) => {
res.statusCode = 200;
res.setHeader('Content-Type', 'text/plain');
res.end('Merhaba Dünya!\n');
});
server.listen(port, hostname, () => {
console.log(Sunucu ${hostname}:${port} adresinde çalışıyor);
});
5. Dosyayı kaydedin ve aşağıdaki komutla çalıştırın: node index.js
Eğer her şey yolunda gittiyse, konsolda “Sunucu 127.0.0.1:3000 adresinde çalışıyor” mesajını göreceksiniz. Tarayıcınızda http://127.0.0.1:3000 adresine girerek “Merhaba Dünya!” mesajını görebilirsiniz.
5. Gerçek Dünya Senaryosu: Bir Express.js Uygulaması Kurulumu
Şimdi, daha gerçekçi bir senaryo ele alalım. Express.js, Node.js için popüler bir web uygulama çerçevesidir. Bir Express.js uygulaması kuracağız ve basit bir web sunucusu oluşturacağız.
npm init -y
npm install express
npm init -y komutu, projeniz için bir package.json dosyası oluşturur. npm install express komutu ise Express.js’i projenize yükler. Ardından, index.js dosyasını şu şekilde güncelleyin:
const express = require('express');
const app = express();
const port = 3000;
app.get('/', (req, res) => {
res.send('Merhaba Dünya, Express.js!');
});
app.listen(port, () => {
console.log(Uygulama ${port} portunda çalışıyor);
});
Bu kodu kaydedin ve node index.js ile çalıştırın. Tarayıcınızda http://127.0.0.1:3000 adresine girerek “Merhaba Dünya, Express.js!” mesajını göreceksiniz. Bu örnek, Node.js ve npm’nin birlikte nasıl kullanılabileceğini göstermektedir.
6. Performans Optimizasyonu: İpuçları ve Stratejiler
Node.js uygulamalarınızın performansını artırmak için birkaç önemli strateji vardır. Bunlardan bazıları:
* Kod Optimizasyonu: Gereksiz işlemlerden kaçının, döngülerinizi optimize edin ve verimli algoritmalar kullanın. async/await ve Promises gibi asenkron programlama tekniklerini kullanarak performansı artırabilirsiniz.
* Cacheleme: Sık erişilen verileri önbelleğe alarak veritabanı sorgularını ve diğer pahalı işlemleri azaltabilirsiniz. Redis veya Memcached gibi önbellek çözümlerini kullanabilirsiniz.
* Load Balancing: Yüksek trafik durumlarında yük dengeleme kullanarak sunucularınız arasındaki yükü dağıtabilirsiniz. Nginx veya HAProxy gibi yük dengeleyiciler kullanabilirsiniz.
* Clustering: Birden fazla işlem kullanarak uygulamanızın performansını artırabilirsiniz. Node.js’in cluster modülü bunu kolaylaştırır.
* Profil Oluşturma: Uygulamanızın performansını analiz etmek için profil oluşturma araçları kullanın. Bu araçlar, uygulamanızda performans darboğazlarını bulmanıza yardımcı olur. [Fatih Soysal’ın blogunda](https://fatihsoysal.com) Node.js performans analizi hakkında daha fazla bilgi bulabilirsiniz.
7. İleri Düzey Konular: Edge Case’ler ve Hata Ayıklama
Node.js ile geliştirme yaparken karşılaşabileceğiniz bazı edge case’ler şunlardır:
* Bellek Sızıntıları: Uygulamanızda bellek sızıntıları oluşabilir ve zamanla performans düşüşüne yol açabilir. Bellek yönetimini dikkatlice yapmalı ve bellek sızıntılarını tespit etmek için araçlar kullanmalısınız.
* Asenkron Programlama Karmaşıklığı: Asenkron işlemlerle çalışırken karmaşıklık artabilir. Hata yönetimini ve kod okunabilirliğini sağlamak için iyi bir yapılandırma önemlidir.
* Güvenlik Açıkları: Uygulamanızın güvenliğini sağlamak için güvenlik açıklarını önlemek ve güvenlik açıklarını gidermek için güncellemeleri uygulamak çok önemlidir.
Sonuç
Bu kılavuz, CentOS 7 sunucunuza Node.js’i kurma ve performansını optimize etme konusunda kapsamlı bir rehber sunmuştur. Basit bir “Merhaba Dünya” uygulamasından gerçek dünya senaryolarına kadar çeşitli örnekler verdik. Ancak, Node.js’in geniş dünyasını keşfetmek için daha çok şey var. [Fatih Soysal’ın](https://fatihsoysal.com) web sitesini ziyaret ederek daha fazla bilgi edinebilirsiniz.
Sıkça Sorulan Sorular:
1. Node.js’in farklı sürümlerini nasıl yönetebilirim? Node Version Manager (nvm) kullanarak farklı Node.js sürümlerini kolayca yönetebilirsiniz.
2. Node.js uygulamalarımı nasıl dağıtabilirim? PM2 gibi işlem yöneticileri kullanarak Node.js uygulamalarınızı dağıtabilirsiniz.
3. Node.js uygulamalarımın güvenliğini nasıl sağlayabilirim? Güvenlik açıklarını önlemek ve güvenlik açıklarını gidermek için güncellemeleri uygulamalı ve güvenlik best practices’lerini uygulamalısınız.
4. Node.js uygulamalarımı nasıl ölçeklendirebilirim? Yük dengeleme, clustering ve veritabanı optimizasyonu gibi teknikler kullanarak Node.js uygulamalarınızı ölçeklendirebilirsiniz.
5. Node.js öğrenmek için nereden başlayabilirim? [Fatih Soysal’ın](https://fatihsoysal.com) web sitesindeki Node.js kaynaklarını inceleyebilirsiniz.
Yazar: Fatih Soysal
