Ubuntu Üzerinde Node.js Uygulamasını Canlı Ortama Taşıma Rehberi
Bu Rehberde Ne Öğreneceksiniz?
Bu rehber, bir Node.js uygulamasını Ubuntu üzerinde canlı ortama taşımayı anlatır.
Amaç; uygulamanın kararlı, güvenli ve ölçeklenebilir çalışmasını sağlamaktır.
Teknik Özet
Bu içerik, Node.js uygulamasını production ortamına hazırlama sürecini kapsar.
Adımlar; Node.js kurulumu, PM2 ile süreç yönetimi, Nginx ters vekil ayarı, SSL ve UFW yapılandırmasını içerir.
1. Node.js Kurulumu ve Doğrulama
Node.js, NodeSource deposu üzerinden güncel LTS sürümüyle kurulur.
curl -sL https://deb.nodesource.com/setup_24.x -o nodesource_setup.sh
sudo bash nodesource_setup.sh
sudo apt install nodejs
- Bu komutlar Node.js ve npm’i sisteme kurar.
node -v
npm -v
- Bu komutlar kurulumun başarılı olduğunu doğrular.
2. Örnek Bir Node.js Uygulaması Oluşturma
- Uygulama sadece localhost üzerinden dinlenmelidir.
const http = require('http');
const hostname = 'localhost';
const port = 3000;
const server = http.createServer((req, res) => {
res.statusCode = 200;
res.end('Merhaba Dunya!');
});
server.listen(port, hostname);
- Bu kod basit bir HTTP sunucusu oluşturur.
node hello.js
- Bu komut uygulamayı test eder.
3. PM2 ile Süreç Yönetimi
- PM2, uygulamanın arka planda sürekli çalışmasını sağlar.
sudo npm install -g pm2
pm2 start hello.js
- Bu komut uygulamayı PM2 altında başlatır.
pm2 startup systemd
pm2 save
- Bu adımlar reboot sonrası otomatik başlatmayı etkinleştirir.
4. Nginx ile Ters Vekil (Reverse Proxy) Yapılandırması
- Node.js doğrudan internete açılmaz. Tüm trafik Nginx üzerinden yönlendirilir.
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;
}
- Bu yapı Nginx’i ters vekil olarak çalıştırır.
sudo nginx -t
sudo systemctl reload nginx
- Bu komutlar yapılandırmayı doğrular.
5. Güvenlik ve SSL Yapılandırması
- UFW ile yalnızca gerekli portlar açılır.
sudo ufw allow OpenSSH
sudo ufw allow 'Nginx Full'
sudo ufw enable
- Bu adımlar sunucuyu dış erişime karşı korur.
SSL sertifikası Let’s Encrypt ile kurulur.
sudo certbot --nginx -d rabisu.cloud
- Bu komut HTTPS’i otomatik etkinleştirir.
sudo certbot renew --dry-run
- Bu komut otomatik yenilemeyi test eder.
Sıkça Sorulan Sorular
1. Uygulama çökerse ne olur? PM2 uygulamayı otomatik yeniden başlatır.
2. Node.js neden doğrudan internete açılmaz? Nginx, SSL ve trafik yönetimini daha verimli yapar.
3. SSL süresi dolunca ne yapılmalı? Certbot otomatik yenileme yapar.
Sonuç
Bu rehber ile Node.js uygulamanız production için hazır hale gelir. PM2 kararlılık sağlar, Nginx trafiği yönetir, SSL güvenliği artırır.
Bu yapılandırmayı Rabisu Bulut altyapısında doğrudan uygulayabilirsiniz.