Plesk Üzerinde Node.js ve PHP Uygulamalarını Aynı Anda Çalıştırmak

Plesk Üzerinde Node.js ve PHP Uygulamalarını Aynı Anda Çalıştırmak
Yazı Özetini Göster

Plesk Üzerinde Node.js ve PHP Uygulamalarını Aynı Anda Çalıştırmak

Plesk, tek bir sunucu veya çoklu abonelik (subscription) yapısında birden fazla yığınla (stack) uygulamayı paralel çalıştırmayı kolaylaştırır. Aynı alan adı altında “/api” yolunda Node.js tabanlı bir hizmet, kök dizinde PHP-FPM ile çalışan bir web uygulaması (WordPress/Laravel vb.) sunmak sık karşılaşılan bir senaryodur. Bu yazıda, Plesk’te Node.js ve PHP uygulamalarının aynı anda—çakışmadan—çalıştırılması için gereken mimari, ters vekil (reverse proxy) ayarları, süreç yönetimi ve güvenlik optimizasyonlarını anlatıyoruz. Daha yüksek kararlılık ve kaynak izolasyonu için uygun ölçekte VDS ya da performans odaklı Premium VDS tercih edilebilir; gerekli olduğunda Sunucu Barındırma çözümleri ile dikey veya yatay ölçeklenebilir.

Neden Karma Yığın (Node.js + PHP)?

  • Mevcut PHP sitesine gerçek zamanlı API/Socket yetenekleri eklemek (Node.js Express/Nest.js).
  • Ön yüz (Next.js/Nuxt) ile arka uç (Laravel/WordPress) ayrımı.
  • Kademeli geçiş ve mikroservis yaklaşımı: Kritik modüller Node.js’e taşınırken ana site PHP’de kalır.

Ön Koşullar ve Sürüm Yönetimi

  • Plesk Obsidian (güncel) + Node.js Extension
  • PHP-FPM etkin (Multi-PHP ve handler seçimi)
  • Alan adı/alt alan adı yapılandırıldı, SSL kurulu (Let’s Encrypt veya özel sertifika)
  • Kaynak planlaması: CPU/RAM limitleri ve IO kotaları; yoğun projelerde Kurumsal Hosting ile kurumsal SLA

Mimari Seçenekler

1) Aynı alan adı, farklı yol (Önerilen Başlangıç)

Örnek: example.com (PHP) ve example.com/api (Node.js). Nginx ters vekil kuralı ile /api isteklerini Node.js uygulamasına yönlendirirsiniz.

2) Alt alan adı ayırma

Örnek: app.example.com (Node.js) ve www.example.com (PHP). DNS ve SSL yönetimi daha nettir; kaynak tüketimi ve loglar ayrışır.

3) Ayrı abonelik (Subscription)

İzolasyonu maksimize eder; büyük ekipler ve CI/CD süreçleri için idealdir. Kaynak yoğun projelerde Kirala Senin Olsun gibi dedike seçenekler değerlendirilebilir.

Plesk’te Node.js Uygulamasını Etkinleştirme

  1. Plesk > Extensions > “Node.js” eklentisini yükleyin.
  2. Alan adınız > Node.js menüsünden “Enable Node.js” deyin.
  3. Uygulama kökünü (Application Root) ve giriş dosyasını (app.js/server.js) belirtin.
  4. Application Mode (Production/Development) ve Node Version’ı seçin.
  5. “NPM install” ve “Restart App” düğmeleriyle kurulumu tamamlayın.

Örnek Express Uygulaması

const express = require('express');
const app = express();

app.get('/health', (req, res) => res.json({ok:true}));
app.get('/api/v1/hello', (req, res) => res.json({message:'NodeJS API'}));

app.listen(process.env.PORT || 3000, () => {
  console.log('Node API is running');
});

Plesk Node.js eklentisi varsayılan PORT’u çevre değişkeni olarak verir ve Nginx/Apache ters vekil ile dış dünyaya açar.

PHP Uygulaması (PHP-FPM) ile Birlikte Çalıştırma

Alan adınızda PHP-FPM etkin olduğundan emin olun: Domains > PHP Settings > “FPM application served by Nginx” seçin ve sürümü belirleyin. Paylaşımlı planlarda Linux Hosting, yoğun iş yüklerinde VDS daha tutarlı sonuç verir.

Nginx Reverse Proxy Kurgusu

Senaryo: example.com PHP, /api Node.js. Plesk’te “Apache & Nginx Settings” > “Additional Nginx directives” bölümüne kural ekleyin:

location /api/ {
  proxy_pass http://127.0.0.1:3000/;   # Plesk Node.js app portu
  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_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
  proxy_read_timeout 60s;
}

Bu şekilde /api istekleri Node.js’e gider, diğer yollar PHP-FPM’e çalışır.

Statik Dosyalar ve Önbellekleme

location ~* \.(js|css|png|jpg|jpeg|gif|svg|webp)$ {
  expires 7d;
  add_header Cache-Control "public, max-age=604800";
}

SSL / HTTP/2 / HSTS

“SSL/TLS Certificates” kısmından Let’s Encrypt aktifleştirin. HTTP/2 Plesk’te Nginx ile gelir. Güvenlik için HSTS:

add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;

Env ve Gizli Bilgiler

API anahtarları ve veritabanı bilgilerini kodda tutmayın. Plesk Node.js ekranında Environment Variables bölümünden tanımlayın. PHP için .env (Laravel) veya Plesk “Additional directives” ile fastcgi_param kullanabilirsiniz.

Günlükler (Logs) ve Sorun Giderme

  • Node.js logları: Plesk > Node.js > “Logs”
  • Web logları: /var/www/vhosts/<domain>/logs/
  • Real-time izleme: Netdata/Zabbix ile CPU/RAM/IO trendlerini takip edin.

Performans: PHP-FPM ve Node.js Ayarları

  • PHP-FPM havuzu: pm, pm.max_children, pm.max_requests değerlerini trafiğe göre ayarlayın.
  • Node.js: Tek iş parçacıklı olay döngüsüdür; CPU yoğun işlerde worker/cluster veya dış job kuyruğu (Bull/RabbitMQ) kullanın.
  • CDN + Önbellek: PHP tarafında OPcache, uygulama önbelleği (Redis/Memcached); statik dosyalar CDN.

Güvenlik: WAF, Rate Limit ve İzolasyon

  • Uygulama katmanında WAF Koruma ve Plesk ModSecurity (OWASP CRS) etkin olsun.
  • Node.js endpoint’lerinde rate limit ve CORS kuralları; JWT/Session yönetiminde güvenli cookie (HttpOnly/SameSite).
  • Yük altında ölçek için alt alan adı/ayrı abonelik; yoğun ortamda Reseller Hosting ayrımı veya dedike Premium VDS.

CI/CD ve Sürümleme

Git Deposu (Plesk Git Extension) ile dal tabanlı dağıtım kurun. “Deploy” sonrası:

# Node.js için
npm ci --only=production
pm2 restart ecosystem.config.js  # (PM2 kullanıyorsanız)
# Plesk Node.js UI üzerinden Restart da yeterlidir.

PHP tarafında composer install --no-dev --optimize-autoloader ve php artisan config:cache gibi adımlar ekleyin.

Örnek Tam Mimari (Aynı Alan Adı)

example.com (SSL, HTTP/2)
 ├─ /           → PHP-FPM (Laravel/WordPress)
 ├─ /assets     → Nginx cache+CDN
 └─ /api        → Node.js (Express, PORT=3000)

İşletim ve Bakım Önerileri

  • Güncellemeleri pencere saatlerinde yapın; otomatik health check endpoint’i kullanın.
  • Logrotate ile logları döndürün, disk kullanımını izleyin.
  • Periyodik performans taraması ve ayar gözden geçirmesi için Optimizasyon Hizmeti alın.

Sonuç

Plesk, aynı alan adı veya alt alan adları altında Node.js ve PHP uygulamalarını birlikte çalıştırmayı basitleştirir. Doğru ters vekil kurgusu, uygun kaynak planı, güvenlik ve önbellekleme katmanlarıyla karma yığınlarda yüksek performans ve esneklik elde edebilirsiniz. Kurumsal ölçekte büyümeye hazır bir mimari için HostLigo’nun ölçeklenebilir hizmetlerinden yararlanarak (örn. VDS, Kurumsal Hosting) sürdürülebilir ve güvenli bir altyapı kurgulayabilirsiniz.

Bir Yorum Yazın

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

Benzer Yazılar