Rocky Linux 9 Üzerinde Node.js Production Kurulumu
Bu Rehberde Ne Öğreneceksiniz?
Bu rehberde Node.js uygulamasını production ortamına hazırlayacaksınız.
PM2 ile süreç yönetimi, Nginx ile ters vekil ve HTTPS erişim sağlayacaksınız.
🧠 Teknik Özet
Konu: Rocky Linux 9 üzerinde Node.js production kurulumu
Problem: Node.js uygulamalarının kararlı ve güvenli çalıştırılması
Çözüm: PM2 + Nginx reverse proxy + HTTPS
Adımlar: Uygulama → PM2 → Nginx → Yayın
Ön Hazırlıklar
Devam etmeden önce aşağıdakiler hazır olmalıdır:
- Rocky Linux 9 yüklü bir sunucu
- Sudo yetkisine sahip bir kullanıcı
- Alan adına yönlendirilmiş sunucu IP adresi
- Nginx ve Node.js kurulu olmalı
1. Basit Bir Node.js Uygulaması Oluşturma
Örnek olarak basit bir HTTP sunucusu oluşturacağız.
sudo dnf install nano
- Bu komut metin düzenleyici kurar.
nano hello.js
- Bu komut yeni bir Node.js dosyası açar.
const http = require('http');
const hostname = 'localhost';
const port = 3000;
const server = http.createServer((req, res) => {
res.statusCode = 200;
res.setHeader('Content-Type', 'text/plain');
res.end('Hello World!\n');
});
server.listen(port, hostname, () => {
console.log(`Server running at http://${hostname}:${port}/`);
});
- Bu kod localhost üzerinde çalışan bir HTTP sunucusu oluşturur.
Uygulamayı test edin:
node hello.js
- Bu komut Node.js uygulamasını başlatır.
2. PM2 ile Süreç Yönetimi
- PM2, Node.js uygulamalarını arka planda çalıştırır.
sudo npm install pm2@latest -g
- Bu komut PM2’yi global olarak kurar.
pm2 start hello.js
- Bu komut uygulamayı PM2 ile başlatır.
Sunucu yeniden başladığında otomatik çalışması için:
pm2 startup systemd
- Bu komut systemd servisini oluşturur.
Komut çıktısındaki satırı çalıştırın ve ardından:
pm2 save
- Bu komut PM2 süreç listesini kaydeder.
3. SELinux Uyumlu PM2 Servisi
- Rocky Linux, SELinux nedeniyle ek ayar ister.
sudo nano /etc/systemd/system/pm2-kullanici.service
- Bu dosya PM2 servis ayarlarını içerir.
Environment=PM2_HOME=/home/kullanici/.pm2
PIDFile=/run/pm2.pid
Environment=PM2_PID_FILE_PATH=/run/pm2.pid
- Bu ayarlar PM2’nin sorunsuz çalışmasını sağlar.
Servisi başlatın:
sudo systemctl start pm2-kullanici
- Bu komut PM2 servisini çalıştırır.
4. Nginx Reverse Proxy Yapılandırması
- Nginx, Node.js uygulamasını dış dünyaya açar.
sudo nano /etc/nginx/conf.d/ornekdomain.conf
- Bu dosya alan adı yapılandırmasını içerir.
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;
}
- Bu yapılandırma trafiği Node.js uygulamasına yönlendirir.
Yapıyı test edin:
sudo nginx -t
- Bu komut Nginx yapılandırmasını kontrol eder.
sudo systemctl restart nginx
- Bu komut Nginx’i yeniden başlatır.
❓ Sıkça Sorulan Sorular (SSS)
1. PM2 neden gereklidir? Uygulama çökse bile otomatik yeniden başlatılır.
2. Node.js neden localhost dinliyor? Güvenlik için doğrudan dış erişim kapatılır.
3. Nginx olmadan çalışır mı? Evet, ancak production için önerilmez.
4. Aynı sunucuda birden fazla uygulama çalışır mı? Evet, farklı portlar ve path’ler ile mümkündür.
Sonuç
Artık Node.js uygulamanız production ortamına hazır. PM2 ile kararlı, Nginx ile güvenli bir yapı kurdunuz.
Bu altyapıyı Rabisu Bulut üzerinde kolayca hayata geçirebilirsiniz.