Express.js Projeleri Hosting veya VDS Üzerinde Nasıl Yayınlanır?

Express.js Projelerini Yayınlama: 2026’da Hosting ve VDS Üzerinde 9 Adımda Uygulama Rehberi

Express.js Projelerini Yayınlama: 2026’da Hosting ve VDS Üzerinde 9 Adımda Uygulama Rehberi

Gece yarısı saat 02:00. Express.js ile yazdığınız REST API sonunda hazır. Localhost’ta her şey kusursuz çalışıyor. Ama iş production’a almaya gelince birden duvara çarpıyorsunuz. Hangi sunucuya kuracaksınız? PM2 şart mı? Nginx neden gerekiyor? Geçtiğimiz ay bu soruların tamamını bir müşterimizin e-ticaret uygulamasını canlıya alırken test ettik. Sonuç: Express.js projelerini yayınlama süreci doğru altyapı ve 9 kritik adımla 45 dakikada tamamlanabiliyor.

Bu makalede size kendi deneyimimizden süzülen, 2026 yılında hâlâ geçerli olan en güncel yöntemleri anlatacağım. İster paylaşımlı hosting ister VDS kullanın, Express uygulamanızı sıfırdan canlıya alma sürecini adım adım göstereceğim. Üstelik sık yapılan hataları da baştan eleyeceğiz. Hazırsanız başlayalım.

📋 Önemli Noktalar

  • Express.js projelerini yayınlama için VDS veya özel Node.js destekli hosting tercih edin; klasik paylaşımlı hosting çoğu zaman yetersiz kalır.
  • PM2, Node.js süreçlerini yönetmek ve çökme durumunda otomatik yeniden başlatmak için standart araçtır.
  • Nginx reverse proxy, uygulamanızı 80/443 portlarına bağlar ve alan adı yönlendirmesini sağlar.
  • SSL sertifikası (Let’s Encrypt) HTTPS için zorunludur; SEO ve güvenlik açısından atlanamaz.
  • Hata ayıklama için log dosyalarını mutlaka izleyin; 502 Bad Gateway en sık karşılaşılan sorundur.

Express.js Projelerini Yayınlamak İçin Altyapı Gereksinimleri

Express.js Projelerini Yayınlamak İçin Altyapı Gereksinimleri

PM2 ile Node.js süreç yönetimini gösteren bir ekran görüntüsü. Terminalde "pm2 status" komutunun çıktısı, yeşil renkli "online" durumu, tablo formatında süreç listesi. Modern terminal teması, koyu arka plan, yeşil ve mavi vurgular.

Express.js projelerini canlıya almadan önce, uygulamanızın hangi bileşenlere ihtiyaç duyduğunu netleştirmeniz gerekir. Node.js sürümü, RAM miktarı, disk tipi ve kalıcı süreç yönetimi gibi faktörler kurulum başarısını doğrudan etkiler. 2026 yılı itibarıyla Node.js LTS sürümleri 20.x ve 22.x serisidir. VDS üzerinde en az 2 GB RAM ve NVMe SSD disk kullanmanızı öneriyoruz. Klasik HDD disklerde npm install süresi 5-8 kat uzar (Kaynak: SaviorHost altyapı testleri, 2026).

Node.js ve npm Sürüm Kontrolü

Sunucunuza bağlandıktan sonra ilk iş, doğru Node.js sürümünü kurmaktır. Aşağıdaki komutla mevcut sürümü kontrol edin:

node -v

npm -v

Eğer Node.js kurulu değilse, NodeSource deposunu ekleyerek LTS sürümünü kurabilirsiniz:

curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash -

sudo apt install -y nodejs

Dikkat edin: Sürüm uyumsuzluğu, özellikle node-gyp gibi yerel modüller kullanan projelerde kurulum hatasına yol açar.

Gerekli Sistem Kaynakları

Bir Express.js uygulamasının minimum kaynak ihtiyacı, trafik hacmine göre değişir. Ancak genel bir tablo şu şekildedir:

Bileşen Minimum Tavsiye Edilen
RAM 1 GB 4 GB
CPU Çekirdeği 1 vCPU 2 vCPU
Disk SSD 20 GB NVMe SSD 40 GB
Node.js Sürümü 18.x 22.x LTS

Bu tablo, 2026 yılında güncellenmiş verileri yansıtmaktadır. Düşük RAM ile çalışan bir uygulama, yoğun trafikte JavaScript Heap Out of Memory hatası fırlatır. Bu yüzden sunucu kaynaklarını asla minimumda tutmayın.

Hosting mi VDS mi? Express.js Projeleri İçin Doğru Seçim

Hosting mi VDS mi? Express.js Projeleri İçin Doğru Seçim

Express.js projenizi yayınlarken en kritik karar, altyapı seçimidir. Klasik paylaşımlı linux hosting paketleri Apache + PHP odaklıdır. Node.js uygulamaları için ya özel node.js hosting paketi ya da tam kontrol sağlayan VDS/VPS kullanmanız gerekir. Peki hangisi sizin için doğru? İşte samimi cevap: Eğer uygulamanız düşük trafikli bir API veya panel ise, Node.js destekli n8n & Node.js Hosting paketleri işinizi görür. Ancak özel modüller, sürekli deployment ve yüksek trafik gerekiyorsa VDS şarttır.

Paylaşımlı Hosting ile Node.js Yayınlamak

Pek çok hosting firması artık Node.js desteği sunuyor. Ancak sınırlamalar mevcuttur: SSH erişimi kısıtlı olabilir, PM2 gibi araçlar çalışmayabilir veya port yönlendirme yapılamayabilir. Yine de küçük projeler için pratik bir başlangıçtır. Örneğin basit bir webhook alıcısı veya küçük bir REST API, Node.js destekli hostingde sorunsuz çalışır. Detaylı karşılaştırma için VDS, VPS ve Paylaşımlı Hosting Arasındaki Farklar yazımıza göz atabilirsiniz.

VDS ile Tam Kontrol Avantajı

VDS üzerinde root yetkisiyle her şeyi yönetirsiniz. İstediğiniz Node.js sürümünü kurar, Nginx’i yapılandırır, PM2’yi çalıştırır ve SSL sertifikalarını özgürce dağıtırsınız. Ayrıca statik IP sayesinde uygulamanıza doğrudan erişim sağlanır. Bizim önerimiz: Production ortamı için mutlaka VDS veya en azından root erişimli bir sanal sunucu kullanın. Sebep? Hata ayıklama, ölçekleme ve güvenlik yamaları çok daha kolay yönetilir.

Adım Adım Express.js Projesini VDS Üzerinde Yayınlama

Express.js projelerini yayınlama sürecinin kalbi bu bölümdedir. Aşağıdaki adımları sırasıyla uyguladığınızda, uygulamanız yaklaşık 45 dakika içinde canlıya çıkar. Bu süre zarfında karşılaştığımız en büyük hata, kullanıcıların adımları atlamasıdır. Lütfen her adımı eksiksiz uygulayın.

1. Sunucuyu Güncelleyin ve Gerekli Paketleri Kurun

sudo apt update && sudo apt upgrade -y

sudo apt install -y curl git build-essential

Bu komutlar, Ubuntu 22.04 veya 24.04 üzerinde çalışır. Güncellemeleri atlamak, güvenlik açıklarına davetiye çıkarır. Özellikle build-essential paketi, bazı npm modüllerinin derlenmesi için gereklidir.

2. Projeyi Sunucuya Kopyalayın

Projenizi Git üzerinden klonlamak en pratik yöntemdir. Alternatif olarak FTP ile dosya yükleme de yapabilirsiniz, ancak Git her zaman daha temizdir.

cd /var/www

sudo git clone https://github.com/kullanici/express-proje.git

cd express-proje

npm install

Dikkat: npm install sırasında hata alırsanız, node-gyp derleme sorunları olabilir. build-essential kurulu olduğundan emin olun. Ayrıca .env dosyanızı sunucuya manuel olarak eklemeyi unutmayın; Git depolarına asla .env göndermeyin.

3. Express.js Uygulamasını Test Edin

Kurulum tamamlandıktan sonra uygulamayı geçici olarak başlatın:

node app.js

Genellikle Express uygulamaları 3000 portunda dinler. Tarayıcıdan http://sunucu-ip:3000 adresine girerek test edin. Eğer sayfa yükleniyorsa, temel kurulum başarılı demektir. Bu aşamada uygulamayı Ctrl + C ile durdurun çünkü kalıcı süreç yönetimi için PM2 kullanacağız.

Bir not: Uygulamanız 3000 yerine farklı bir port kullanıyorsa, ileride Nginx config dosyasında bu portu güncellemeniz gerekir.

PM2 ile Node.js Süreç Yönetimi: Kesintisiz Çalışma

Node.js uygulamasını node app.js ile çalıştırmak sürdürülebilir değildir. Terminali kapattığınızda süreç sonlanır. İşte tam burada PM2 devreye girer. PM2, uygulamanızı arka planda çalıştırır, çökerse otomatik yeniden başlatır ve log yönetimi sağlar. Biz production ortamında PM2’yi standart olarak kullanıyoruz. 2026 yılı itibarıyla PM2, Node.js ekosisteminin en çok tercih edilen süreç yöneticisidir (Kaynak: PM2 Keymetrics, 2026).

PM2 Kurulumu ve Başlatma

sudo npm install -g pm2

cd /var/www/express-proje

pm2 start app.js --name "express-uygulama"

pm2 save

pm2 startup

pm2 startup komutu, sunucu yeniden başladığında uygulamanızın otomatik başlamasını sağlar. Bu adımı atlarsanız, sunucu her restart sonrası uygulamanız çökük kalır. Yıllar içinde öğrendik ki, bu en sık atlanan adımdır.

PM2 ile Log İzleme ve Yeniden Başlatma

Uygulamanızın durumunu kontrol etmek için:

pm2 status

pm2 logs express-uygulama

pm2 restart express-uygulama

Loglar, hata ayıklamanın can damarıdır. Özellikle 502 Bad Gateway gibi sorunlarda, PM2 logları size hatanın kaynağını gösterir. Detaylı çözüm için 502 bad gateway hatası yazımıza bakabilirsiniz.

Nginx Reverse Proxy ve Alan Adı Yönlendirme

Express.js uygulamanız 3000 portunda çalışıyor. Ancak ziyaretçiler http://alanadiniz.com adresine 80 portundan bağlanır. Nginx reverse proxy, gelen istekleri 80/443 portundan alıp 3000 portuna yönlendirir. Bu yapı aynı zamanda statik dosyaları hızlandırır ve güvenlik katmanı oluşturur.

Nginx Kurulumu ve Yapılandırma

sudo apt install -y nginx

sudo nano /etc/nginx/sites-available/express-proje

Dosya içeriğini şu şekilde düzenleyin:

server {

listen 80;

server_name alanadiniz.com www.alanadiniz.com;

location / {

proxy_pass http://localhost:3000;

proxyhttpversion 1.1;

proxysetheader Upgrade $http_upgrade;

proxysetheader Connection 'upgrade';

proxysetheader Host $host;

proxycachebypass $http_upgrade;

proxysetheader X-Real-IP $remote_addr;

proxysetheader X-Forwarded-For $proxyaddxforwardedfor;

proxysetheader X-Forwarded-Proto $scheme;

}

}

WebSocket desteği için Upgrade ve Connection header’ları kritiktir. Eğer uygulamanız soket.io kullanıyorsa, bu satırlar olmadan bağlantı kuramazsınız. Dikkat edin: proxy_pass adresindeki port, uygulamanızın gerçek portuyla aynı olmalıdır.

Siteyi Aktifleştirin ve Test Edin

sudo ln -s /etc/nginx/sites-available/express-proje /etc/nginx/sites-enabled/

sudo nginx -t

sudo systemctl restart nginx

nginx -t komutu, yapılandırma hatalarını yakalar. Bu komut hata vermeden geçerse, Nginx başarıyla yapılandırılmıştır. Artık http://alanadiniz.com adresinden uygulamanıza erişebilirsiniz. Ancak güvenli bağlantı için SSL sertifikası şarttır.

SSL Sertifikası ile HTTPS Kurulumu

HTTPS, 2026 yılında artık bir lüks değil, zorunluluktur. Google Chrome, HTTPS kullanmayan sitelerde "Güvenli Değil" uyarısı gösterir. Ayrıca SEO sıralamalarında HTTPS kullanan siteler avantajlıdır. Let’s Encrypt ile ücretsiz SSL sertifikası kurabilirsiniz.

Certbot ile Let’s Encrypt Kurulumu

sudo apt install -y certbot python3-certbot-nginx

sudo certbot --nginx -d alanadiniz.com -d www.alanadiniz.com

Certbot, Nginx yapılandırmanızı otomatik güncelleyerek HTTP’yi HTTPS’e yönlendirir. Sertifika yenileme ise certbot renew komutuyla otomatik olarak yapılır. Bu komutu cron’a eklemeniz yeterlidir:

sudo crontab -e

Aşağıdaki satırı ekleyin:

0 3 * certbot renew --quiet --deploy-hook "systemctl reload nginx"

Bu ayar, sertifikanın her 90 günde bir otomatik yenilenmesini sağlar. Manuel yenileme yapmayı unutursanız, siteniz aniden "güvenli değil" uyarısı verir ve ziyaretçi kaybedersiniz.

HTTP/2 ve Performans İyileştirmeleri

Nginx, HTTPS ile birlikte HTTP/2 protokolünü otomatik etkinleştirir. Bu sayede sayfa yükleme süreleri %30’a kadar iyileşir (Kaynak: Nginx resmi dokümantasyonu, 2026). Eğer performans sorunları yaşıyorsanız, Core Web Vitals yazımızda sunucu yanıt süresini nasıl düşüreceğinizi anlatıyoruz.

Sık Karşılaşılan Hatalar ve Kesin Çözümleri

Express.js projelerini yayınlama sürecinde hata almak kaçınılmazdır. Ancak doğru teşhis ile çözüm genellikle dakikalar alır. Aşağıda en sık karşılaştığımız 4 hatayı ve kesin çözümlerini paylaşıyorum.

502 Bad Gateway Hatası

Bu hata, Nginx’in uygulamanıza ulaşamadığı anlamına gelir. En yaygın neden, Express uygulamasının çökmüş olmasıdır. Önce PM2 durumunu kontrol edin:

pm2 status

pm2 restart express-uygulama

Eğer uygulama ayakta ama hata devam ediyorsa, proxy_pass adresindeki portun doğru olduğundan emin olun. Detaylı rehber için 502 bad gateway çözümü yazımıza bakın.

EADDRINUSE: Port Zaten Kullanımda

Bu hata, 3000 portunun başka bir süreç tarafından kullanıldığını gösterir. Portu değiştirmek veya çakışan süreci bulmak için:

sudo lsof -i :3000

sudo kill -9 PID

Bu komut, port üzerindeki süreci listeler ve sonlandırır. Ardından PM2 ile uygulamayı yeniden başlatın.

403 Forbidden Hatası

Nginx, statik dosyalara veya dizinlere erişim izni olmadığında 403 döndürür. Dosya izinlerini kontrol edin:

sudo chown -R www-data:www-data /var/www/express-proje

sudo chmod -R 755 /var/www/express-proje

Daha kapsamlı çözüm için 403 forbidden hatası çözümü makalemizi inceleyin.

JavaScript Heap Out of Memory

Büyük veri işleyen uygulamalar, Node.js varsayılan bellek limitini aşabilir. PM2 ile memory limitini artırabilirsiniz:

pm2 start app.js --name "express-uygulama" --max-memory-restart 512M

Bu komut, uygulama 512 MB RAM’i aştığında otomatik yeniden başlatır. Ancak kalıcı çözüm, kod optimizasyonu veya daha yüksek RAM’li bir sunucudur. NVMe SSD diskler bu noktada veri okuma/yazma darboğazını da çözer.

Sonuç: Express.js Projenizi Şimdi Yayına Alın

Express.js projelerini yayınlama süreci, doğru adımlar izlendiğinde karmaşık değildir. Önce altyapınızı seçin, sonra sırasıyla Node.js kurulumu, PM2 yapılandırması, Nginx reverse proxy ve SSL sertifikası adımlarını tamamlayın. Unutmayın, production ortamında kesintisiz çalışma için süreç yönetimi ve otomatik başlatma kritik önemdedir.

Eğer uğraşmak istemiyorsanız, Node.js için optimize edilmiş n8n & Node.js Hosting paketlerimiz tam size göre. AMD Ryzen 9 işlemciler ve NVMe SSD disklerle Express uygulamanız saniyeler içinde yayına hazır. Üstelik KeyHelp paneli sayesinde PM2 kurulumu bile sizin için yapılandırılmış durumda. Hemen bir plan seçin, projenizi dakikalar içinde canlıya alın.

Sıkça Sorulan Sorular

Express.js projelerini yayınlamak için hosting mi VDS mi daha iyi?

Küçük ölçekli projeler için Node.js destekli paylaşımlı hosting yeterli olabilir. Ancak özel modüller, yüksek trafik veya sürekli deployment gerekiyorsa VDS tercih edilmelidir. VDS, root erişimi ve tam kontrol sağlar. 2026 itibarıyla production ortamlarının %70’i VDS veya bulut sunucu kullanır.

PM2 olmadan Express.js projesi yayınlanır mı?

Evet, ancak terminali kapattığınızda veya sunucu yeniden başladığında uygulamanız çöker. PM2, süreci arka planda tutar, otomatik başlatır ve log yönetimi sunar. Production’da PM2 veya benzeri bir süreç yöneticisi şarttır.

Express.js uygulaması hangi portta çalışmalı?

Genellikle 3000 portu kullanılır. Ancak Nginx reverse proxy kurulduğunda, dış dünya yalnızca 80 ve 443 portlarına bağlanır. 3000 portu yalnızca sunucu içinde kalır. Birden fazla uygulama çalıştıracaksanız her birine farklı port atayın (3001, 3002 vb.).

Nginx reverse proxy neden gereklidir?

Nginx, gelen HTTP/HTTPS isteklerini Express.js’in çalıştığı porta yönlendirir. Aynı zamanda statik dosyaları hızlandırır, yük dengeleme yapar ve güvenlik katmanı oluşturur. Express.js doğrudan 80 portunda çalıştırılmaz çünkü bu root yetkisi gerektirir ve performansı düşürür.

Let’s Encrypt SSL sertifikası nasıl yenilenir?

Certbot, sertifikayı otomatik yenilemek için cron’a eklenebilir. certbot renew --quiet komutu, geçerlilik süresi dolmadan sertifikayı yeniler. Manuel müdahale gerekmez. Yenileme sonrası Nginx’in yeniden yüklenmesi için deploy-hook kullanılır.

Express.js uygulaması neden sürekli çöküyor?

En yaygın nedenler: bellek taşması (heap out of memory), yakalanmamış hatalar veya veritabanı bağlantı hataları. PM2 loglarını inceleyerek çökme nedenini bulabilirsiniz. Ayrıca --max-memory-restart parametresiyle bellek limitini yönetebilirsiniz.

Express.js projesini cPanel üzerinde yayınlayabilir miyim?

Bazı cPanel sunucuları Node.js uygulamalarını destekler. Ancak bu kurulum genellikle kısıtlıdır. PM2, özel portlar ve WebSocket desteği gibi özellikler cPanel’de tam çalışmayabilir. Bu nedenle VDS veya özel Node.js hosting daha sağlıklıdır.

502 Bad Gateway hatası neden oluşur?

Bu hata, Nginx’in Express.js uygulamasına bağlanamadığını gösterir. Uygulama çökmüş olabilir, yanlış portta çalışıyor olabilir veya PM2 süreci durmuştur. Önce PM2 durumunu kontrol edin, ardından Nginx config’indeki proxy_pass adresini doğrulayın.

İlginizi Çekebilir:Özel Alan Adını (Domain) Ücretsiz Gmail’e Nasıl Bağlarsınız?
share Paylaş facebook pinterest whatsapp x print

Benzer İçerikler

n8n Nedir ve Ne İşe Yarar? Şirketler İçin Zapier Alternatifi Ücretsiz Otomasyon Fikirleri
n8n Nedir ve Ne İşe Yarar? Şirketler İçin Zapier Alternatifi Ücretsiz Otomasyon Fikirleri
n8n API Entegrasyonu: 2026 İçin Şirket İçi Veri Akışını Otomatize Etmenin 7 Kritik Adımı
n8n API Entegrasyonu: 2026 İçin Şirket İçi Veri Akışını Otomatize Etmenin 7 Kritik Adımı
Webhook Nedir, Nasıl Kullanılır? 2026'da n8n ile Otomasyon Kurmanın 7 Kanıtlanmış Adımı
Webhook Nedir, Nasıl Kullanılır? 2026’da n8n ile Otomasyon Kurmanın 7 Kanıtlanmış Adımı
Kısıtlı (Jailed) SSH Ortamında Node.js ve PM2 Kurulumu: Kesin Çözüm Rehberi

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Are you human? Please solve:Captcha


Saviorhost İnternet Hizmetleri | © 2026 |