Node.js Sunucuya Nasıl Kurulur? Ubuntu ve AlmaLinux Rehberi
Node.js Nedir?
Node.js, Chrome'un V8 JavaScript motorunu kullanan, sunucu taraflı JavaScript çalıştırma ortamıdır. Geleneksel web sunucularından farklı olarak, event-driven (olay güdümlü) ve non-blocking I/O mimarisiyle yüksek eşzamanlı bağlantı sayısını düşük kaynak tüketimiyle yönetir. Bu özelliği Node.js'i; gerçek zamanlı uygulamalar, API servisleri, chat sistemleri ve mikro servis mimarileri için ideal kılar.
npm (Node Package Manager) ekosistemi, 2 milyondan fazla açık kaynak paketi barındırarak dünyanın en büyük yazılım kütüphanesi haline gelmiştir. Express.js, Next.js, NestJS ve Socket.io gibi güçlü framework'ler Node.js üzerinde çalışır. React, Vue ve Angular gibi modern frontend framework'lerin build süreçleri de Node.js altyapısını kullanır.
Ubuntu Üzerinde Node.js Kurulumu
# Yöntem 1: NodeSource deposu (önerilen - güncel sürümler):
curl -fsSL https://deb.nodesource.com/setup_20.x | bash -
apt install nodejs
# Versiyon kontrolü:
node -v
npm -v
# Yöntem 2: snap ile kurulum:
snap install node --classic
# Yöntem 3: nvm (Node Version Manager) ile:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
source ~/.bashrc
nvm install 20 # LTS sürüm
nvm use 20
nvm alias default 20
AlmaLinux/CentOS Üzerinde Node.js Kurulumu
# NodeSource deposu ile kurulum:
curl -fsSL https://rpm.nodesource.com/setup_20.x | bash -
yum install nodejs
# dnf ile (AlmaLinux 9):
dnf module enable nodejs:20
dnf install nodejs
# Versiyon kontrolü:
node --version
npm --version
İlk Node.js Uygulamasını Çalıştırma
# Basit bir HTTP sunucusu (app.js):
const http = require("http");
const server = http.createServer((req, res) => {
res.writeHead(200, {"Content-Type": "text/plain"});
res.end("Merhaba, Node.js!\n");
});
server.listen(3000, () => {
console.log("Sunucu 3000 portunda çalışıyor");
});
# Çalıştırma:
node app.js
# Express.js ile basit API:
npm init -y
npm install express
# server.js:
const express = require("express");
const app = express();
app.get("/", (req, res) => res.json({ durum: "çalışıyor" }));
app.listen(3000, () => console.log("Express çalışıyor: port 3000"));
PM2 ile Process Yönetimi
Node.js uygulamaları production ortamında doğrudan node komutuyla çalıştırılmamalıdır. Uygulama çöktüğünde otomatik yeniden başlatma, cluster modu ve log yönetimi gibi özellikler sunan PM2 process manager kullanılmalıdır.
# PM2 kurulumu:
npm install -g pm2
# Uygulamayı PM2 ile başlatma:
pm2 start app.js --name "benim-uygulamam"
# Sistem başlangıcında otomatik başlatma:
pm2 startup
pm2 save
# Yönetim komutları:
pm2 list # Çalışan uygulamaları listele
pm2 logs # Log akışını izle
pm2 restart app # Yeniden başlat
pm2 stop app # Durdur
pm2 delete app # Kaldır
# Cluster modu (tüm CPU çekirdeklerini kullan):
pm2 start app.js -i max
Nginx ile Node.js Reverse Proxy
Node.js uygulamasını 80 ve 443 portlarından erişilebilir kılmak için Nginx'i reverse proxy olarak yapılandırın. Bu yapı aynı zamanda SSL sonlandırma ve statik dosya servisi için de en iyi uygulamadır.
# /etc/nginx/sites-available/nodejs.conf
server {
listen 80;
server_name firmaniz.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_set_header X-Real-IP $remote_addr;
proxy_cache_bypass $http_upgrade;
}
}
# Nginx'i yeniden yükleyin:
nginx -t && systemctl reload nginx
Node.js kurulumu, PM2 yapılandırması, Nginx reverse proxy ayarı veya performans optimizasyonu konularında HostingKontrol teknik destek ekibimize başvurabilirsiniz. VPS ve dedicated sunucu paketlerimiz Node.js uygulamalarını çalıştırmak için idealdir.