Bugün size nasıl yardımcı olabiliriz?

Bilgi bankamızda arama yapmak için sorunuzu yazın...

Node.js ve Laravel Uygulamasını VPS'e Deploy Etme

Yazdır

Netx Teknik Ekibi  ·  Yayın: 16.09.2026

Node.js ve Laravel uygulamalarını VPS'e yayınlarken sıra şudur: sunucuyu hazırlayın, uygulamayı çekin, bağımlılıkları kurun, ortam değişkenlerini tanımlayın, süreç yöneticisiyle (Node tarafında PM2, PHP tarafında PHP-FPM) çalıştırın ve önüne bir web sunucusu koyup sertifikayı kurun. Kritik nokta, uygulamayı doğrudan 80/443 portunda değil, vekil arkasında çalıştırmaktır.

Sunucu hazırlığı

  1. Anahtar tabanlı SSH ve güvenlik duvarı (ilk kurulum rehberi).
  2. Uygulama için ayrı bir sistem kullanıcısı oluşturun; root ile çalıştırmayın.
  3. Gerekli çalışma zamanını kurun: Node.js sürümü veya PHP ve eklentileri.
  4. Veritabanını kurun veya ayrı bir sunucuya bağlayın.
  5. Git ile kod çekimi için dağıtım anahtarı tanımlayın.

Node.js: PM2 ile süreç yönetimi

Node uygulaması terminalden çalıştırıldığında oturum kapanınca durur. PM2 gibi bir süreç yöneticisi şunları sağlar:

  • Uygulamayı arka planda çalıştırma
  • Çökme durumunda otomatik yeniden başlatma
  • Sunucu yeniden başladığında otomatik ayağa kalkma
  • Günlük (log) yönetimi
  • Çok çekirdekli sunucularda küme (cluster) modu

Uygulamayı 3000 gibi yerel bir portta dinletin; dış dünyaya açmayın. İstekler web sunucusu üzerinden yönlendirilir.

Laravel: PHP-FPM ve izinler

  1. Kodu çektikten sonra bağımlılıkları üretim modunda kurun.
  2. .env dosyasını sunucuda oluşturun; kod deposuna koymayın.
  3. Uygulama anahtarını üretin ve önbellek/rota/yapılandırma önbelleklerini oluşturun.
  4. storage ve bootstrap/cache dizinlerine yazma izni verin.
  5. Web sunucusunun kök dizinini public klasörüne ayarlayın; proje kökünü açmayın.
  6. Kuyruk kullanıyorsanız işçi süreçlerini bir süreç yöneticisiyle çalıştırın.
  7. Zamanlanmış görevler için sunucu cron'una tek bir giriş ekleyin.

Beşinci madde güvenlik açısından kritiktir: kök dizin yanlış ayarlandığında .env dosyası dışarıdan erişilebilir hale gelebilir.

Ters vekil ve sertifika

Uygulamanın önünde bir web sunucusu bulunur: gelen istekleri alır, statik dosyaları kendisi sunar, dinamik istekleri uygulamaya iletir ve SSL sonlandırmasını yapar. Böylece sertifika yönetimi tek noktada toplanır ve uygulama kodu HTTPS ayrıntılarıyla uğraşmaz. Web sunucusu seçenekleri arasındaki farkı Nginx mi Apache mi LiteSpeed mi yazısında karşılaştırdık.

Dağıtım akışı

AdımNode.jsLaravel
Kodu çekgit pullgit pull
BağımlılıklarÜretim kurulumuÜretim kurulumu
DerlemeVarsa build adımıVarlık derleme (varsa)
VeritabanıGöç betikleriMigration
Önbellek—Yapılandırma ve rota önbelleği
Yeniden başlatPM2 reloadPHP-FPM reload
DoğrulaSağlık kontrolüSağlık kontrolü

Bu adımları bir betikte toplamak, dağıtımı tekrarlanabilir hale getirir ve insan hatasını azaltır.

Kesintisiz güncelleme

Dağıtım sırasında kısa kesinti yaşanmaması için iki yaygın yöntem vardır: yeni sürümü ayrı bir dizine kurup hazır olduğunda sembolik bağlantıyı değiştirmek veya süreç yöneticisinin kademeli yeniden yükleme özelliğini kullanmak. İkisi de eski sürümün, yenisi ayağa kalkana kadar isteklere yanıt vermesini sağlar.

İzleme ve günlükler

  • Uygulama hatalarını merkezî bir kayıt dosyasına veya servise yönlendirin.
  • Süreç yöneticisinin yeniden başlatma sayısını izleyin: sık yeniden başlama gizli bir hata işaretidir.
  • Disk doluluğunu takip edin; günlükler en hızlı büyüyen kalemdir.
  • Sağlık kontrolü uç noktası ekleyip dış bir izleme servisine bağlayın.

Konteyner alternatifi

Bağımlılıkları sunucuya kurmak yerine konteyner kullanmak, ortamların birebir aynı olmasını sağlar ve taşımayı kolaylaştırır. Tek uygulamalı basit kurulumlarda ek bir katman olur; çok servisli yapılarda avantaja döner. Kurgunun ayrıntılarını VPS'te Docker ile yayınlama yazısında anlattık.

Netx'te sunucular

Root erişimli VPS ve kaynakları ayrılmış VDS paketlerinde istediğiniz çalışma zamanını kurabilirsiniz. Sunucu kurulumunu ve bakımını devretmek isterseniz sunucu yönetim hizmeti, daha yüksek ve sürekli kaynak ihtiyacında dedicated sunucu seçenekleri bulunur.

Sık sorulan sorular

Uygulamayı doğrudan 80 portunda çalıştırabilir miyim?

Teknik olarak mümkün ama önerilmez: sertifika yönetimi, statik dosya servisi ve birden çok uygulama desteği için vekil katmanı gerekir.

Paylaşımlı hostingte Node.js çalışır mı?

Bazı paketler sınırlı destek sunar. Kalıcı süreç ve tam kontrol gerekiyorsa VPS uygundur.

Ne kadar bellek gerekir?

Uygulamaya bağlıdır. Tek bir Node servisi ve küçük bir veritabanı için 2 GB başlangıç sayılabilir; ölçüm yöntemi RAM ne kadar olmalı yazısında.

Dağıtımı otomatikleştirmeli miyim?

Elle yapılan her dağıtım hata riski taşır. En azından adımları bir betikte toplayın.

Veritabanını aynı sunucuda tutmalı mıyım?

Küçük ve orta ölçekte evet. Yük arttığında ayırmak, kaynak rekabetini ortadan kaldırır.

Bu cevap yeterince yardımcı oldu mu?

Değerlendirme: 0

<< Geri
İnternet bağlantınız kesildi