Plesk Node.js Kurulumu: Phusion Passenger, NPM ve SSL Yapılandırması
Plesk panelde Node.js uygulaması yayınlama rehberi: Phusion Passenger port ayarı, NPM kurulumu, ortam değişkenleri ve ücretsiz SSL yapılandırması.
İçindekiler
Plesk kontrol paneli, Linux komut satırına ihtiyaç duymadan Express, NestJS veya özel Node.js uygulamalarını doğrudan web hosting hesabınız üzerinden çalıştırmanıza olanak tanır. Plesk altyapısında Node.js uygulamaları Nginx veya Apache web sunucusunun arkasında Phusion Passenger modülüyle entegre biçimde çalışır. Bu mimari; süreç yönetimini, otomatik yeniden başlatmayı ve gelen web isteklerinin uygulamaya ters vekil (reverse proxy) olarak yönlendirilmesini otomatikleştirir.
Proje hazırlığı ve dosya yapısı
Node.js projenizi barındırma alanına aktarmadan önce yerel ortamınızda iki temel dosyanın yapılandırılması gerekir: projenin bağımlılıklarını belirten package.json ve uygulamayı başlatan giriş dosyası (app.js veya server.js).
Aşağıdaki örnek package.json yapısı, Plesk'in uygulamanızı tanıması ve gerekli paketleri kurması için standart bir temel sunar:
{
"name": "plesk-nodejs-ornek",
"version": "1.0.0",
"description": "Plesk hosting uzerinde calisan Node.js uygulamasi",
"main": "app.js",
"scripts": {
"start": "node app.js"
},
"dependencies": {
"express": "^4.21.0"
}
}
Port yapılandırması ve process.env.PORT kullanımı
Yerel geliştirme ortamında Node.js sunucuları genellikle 3000 veya 8000 gibi sabit port numaraları üzerinden dinlenir. Ancak Plesk ortamında Phusion Passenger modülü devreye girer. Passenger, uygulamanızı yönetirken ona dinamik bir yerel port veya Unix soket yolu tahsis eder ve bu bilgiyi process.env.PORT ortam değişkeniyle uygulamaya aktarır.
Kodunuzda sabit bir port tanımlamak uygulamanızın web sunucusuyla iletişim kurmasını engeller ve 502 Bad Gateway hatası almanıza yol açar. Bu nedenle sunucu başlatma kodunuzda port tanımlamasını şu şekilde yapmanız gerekir:
const express = require("express");
const app = express();
const port = process.env.PORT || 3000;
app.get("/", (req, res) => {
res.send("Plesk uzerinde Node.js uygulamasi basariyla yayinda.");
});
app.listen(port, () => {
console.log(`Sunucu ${port} portu uzerinde calisiyor`);
});
Bu yapı sayesinde uygulama hem yerel geliştirme ortamınızda varsayılan portu kullanır hem de Plesk üzerinde Passenger tarafından atanan dinamik portu dinler.
Uygulama ve belge kök dizinlerinin yapılandırılması
Plesk üzerinde Node.js uygulaması yapılandırırken dikkat edilmesi gereken kritik adım, uygulama kök dizini (Application Root) ile belge kök dizinini (Document Root) birbirinden ayırmaktır:
- Uygulama Kökü (Application Root): Kaynak kodların,
package.jsondosyasının venode_modulesdizininin yer aldığı ana klasördür. Plesk standart hosting alanında bu dizin genellikle/httpdocsolarak seçilir. - Belge Kökü (Document Root): Yalnızca dışarıdan doğrudan erişilebilen statik dosyaların (resimler, CSS, istemci tarafı JavaScript dosyaları) bulunduğu klasördür. Güvenlik gereği bu dizin
/httpdocs/publicşeklinde ayrıştırılmalıdır.
Eğer belge kökünü doğrudan /httpdocs olarak bırakırsanız, ziyaretçiler alan adınızın sonuna dosya adını yazarak package.json dosyanızı veya varsa gizli yapılandırma dosyalarınızı doğrudan indirebilir. Bu güvenlik riskini önlemek için statik varlıklarınızı public klasöründe tutmanız ve Plesk panelinde belge kökünü bu klasöre yönlendirmeniz gerekir.
Proje dosyalarının Plesk'e aktarılması
Hazırladığınız proje dosyalarını Plesk hosting hesabınıza iki farklı yöntemle aktarabilirsiniz:
- Dosya Yöneticisi ile Yükleme:
- Projenizdeki
node_modulesklasörünü yükleme arşivine dahil etmeyin. Bağımlılıklar sunucu tarafında Plesk'in kendi araçlarıyla derlenecektir. - Proje dosyalarınızı (
app.js,package.jsonve varsapublicdizini) bir ZIP arşivi haline getirin. - Plesk panelinde Dosyalar sekmesini açarak
httpdocsdizinine girin. - Arşivi yükleyip klasör içerisine çıkartın.
- Projenizdeki
- Git ile Entegrasyon:
- Projenizi GitHub veya GitLab gibi bir depoda tutuyorsanız, Plesk'in yerleşik Git aracıyla depoyu doğrudan
httpdocsdizinine bağlayabilirsiniz.
- Projenizi GitHub veya GitLab gibi bir depoda tutuyorsanız, Plesk'in yerleşik Git aracıyla depoyu doğrudan
Plesk Node.js yönetim ekranı ayarları
Dosyalar yüklendikten sonra Plesk kontrol paneli üzerinden alan adınızın yönetim kartına gelin ve Node.js simgesine tıklayın:
| Ayar Alanı | Değer | Açıklama |
|---|---|---|
| Node.js Sürümü | 20.x veya 22.x LTS | Projenizin uyumlu olduğu güncel ve uzun vadeli destekli (LTS) sürüm |
| Uygulama Modu | production | Canlı ortam optimizasyonları ve hata gizleme |
| Uygulama Kökü | /httpdocs | Proje kaynak kodlarının ve package.json dosyasının bulunduğu dizin |
| Belge Kökü | /httpdocs/public | Dışarıya açık statik dosyaların dizini |
| Uygulama Başlangıç Dosyası | app.js | Sunucuyu ayağa kaldıran ana çalıştırma dosyası |
Ayarları tanımladıktan sonra Node.js'i Etkinleştir seçeneğine tıklayarak modülü aktif hâle getirin.
Bağımlılıkların derlenmesi ve ortam değişkenleri
Uygulamanın çalışabilmesi için package.json içerisinde belirtilen kütüphanelerin sunucu ortamına indirilmesi gerekir.
- NPM Kurulumu:
- Node.js yönetim sayfasında yer alan NPM Kurulumu butonuna tıklayın.
- Plesk, arka planda npm paket kurulum sürecini çalıştırır ve gerekli kütüphaneleri
httpdocs/node_modulesklasörüne yükler. İşlem bittiğinde panelde başarı bildirimi görüntülenir.
- Ortam Değişkenleri:
- Veritabanı bağlantı şifreleri, API anahtarları veya çalışma modları gibi gizli veriler kaynak kod içine yazılmaz.
- Plesk Node.js yönetim ekranındaki Ortam Değişkenleri bölümünden
NODE_ENVdeğeriniproductionolarak tanımlayın. - Uygulamanızın ihtiyaç duyduğu diğer özel anahtarları da bu arayüzden anahtar-değer çifti olarak ekleyin.
- Uygulamanın Başlatılması:
- Sayfadaki Uygulamayı Yeniden Başlat butonuna basarak Node.js sürecini başlatın. Artık tarayıcınızdan alan adınızı ziyaret ettiğinizde uygulamanız yayında olacaktır.
Ücretsiz SSL ve HTTPS yönlendirmesi
Node.js uygulamanızın güvenli bağlantı üzerinden hizmet vermesi ve arama motorlarında sıralama kaybetmemesi için SSL sertifikası kurulması zorunludur.
Plesk panelde alan adınızın kartından SSL/TLS Sertifikaları bölümüne girin. Let's Encrypt seçeneğini işaretleyerek alan adınız ve www alt alan adınız için sertifika talebini onaylayın. Sertifika kurulduktan sonra panel ayarlarından Barındırma Ayarları sayfasına geçip kalıcı HTTP'den HTTPS'ye yönlendirme seçeneğini işaretleyin. Böylece tüm gelen web istekleri şifreli protokole aktarılır.
Plesk hosting ve VDS altyapısı seçimi
Geliştirdiğiniz Node.js projelerinin mimarisi, ihtiyaç duyacağınız barındırma türünü doğrudan belirler:
- Web Siteleri ve REST API'lar: Standart ziyaretçi trafiği alan web uygulamaları, yönetim panelleri ve API servisleri için Plesk web hosting ortamı pratik bir yönetim sağlar. Süreç yönetimi, ücretsiz SSL ve Nginx ters vekili tek bir panelden yönetilir. Daha önce farklı bir kontrol panelinden geçiş yapıyorsanız, cPanel'den Plesk'e site taşıma ve Plesk nedir rehberlerimizde ele aldığımız altyapı adımlarını inceleyebilirsiniz.
- Yüksek Kaynak ve Özelleştirme İhtiyacı: Arka planda sürekli çalışan soket sunucuları, kuyruk işleyicileri veya mikroservis mimarileri barındırıyorsanız Web hosting mi VDS mi rehberimizde belirttiğimiz gibi tam kök (root) erişimi gerekir. Bu tür yoğun iş yükleri için paylaşımlı vCore kaynaklarına sahip Performans VPS veya ayrılmış vCore donanımı sunan Ekstrem VDS sunucuları tercih edilmelidir.
TREAS altyapısı, tüm hizmetlerini Mars İstanbul Veri Merkezi lokasyonunda 10 Gbps port kapasitesiyle barındırır. Web hosting ve sunucu paketlerinde standart olarak sunulan TRSHIELD altyapısı, L3, L4 ve L7 katmanlarında süzme yaparak uygulamalarınızı saldırı taşkınlarına karşı korur. Başka bir barındırma firmasından gelen kullanıcılar için ücretsiz site taşıma imkânı sunulmaktadır.
Sık sorulan sorular
Plesk üzerinde Node.js uygulaması için port numarası nasıl tanımlanır?
Plesk altyapısında Node.js uygulamaları Nginx veya Apache arkasında Phusion Passenger ters vekil modülüyle çalıştırılır. Uygulama kodunda sabit bir port numarası (örneğin 3000) dinlemek yerine process.env.PORT ortam değişkeni kullanılmalıdır. Passenger, gelen web trafiğini bu dinamik port veya yerel soket üzerinden uygulamaya iletir.
Plesk'te package.json bağımlılıkları terminal olmadan nasıl kurulur?
Uygulama dosyaları httpdocs dizinine yüklendikten sonra Plesk kontrol panelindeki Node.js yönetim ekranından NPM Kurulumu (NPM Install) butonuna tıklanır. Panel, package.json dosyasını okuyarak gerekli tüm modülleri node_modules klasörüne otomatik olarak kurar.
Uygulama ve belge kök dizinleri neden birbirinden farklı ayarlanmalıdır?
Uygulama kökü (Application Root) kaynak kodların ve package.json gibi dosyaların bulunduğu ana dizindir. Belge kökü (Document Root) ise yalnızca statik dosyaların dışarıya açıldığı alt klasördür (örneğin public). Bu ayrım yapılmadığında ziyaretçiler hassas yapılandırma dosyalarınıza doğrudan tarayıcı üzerinden erişebilir.
Ortam değişkenleri (Environment Variables) Plesk panelde nasıl tanımlanır?
Plesk Node.js yönetim ekranında yer alan Ortam Değişkenleri bölümünden NODE_ENV, veritabanı bağlantı adresleri ve gizli anahtarlar anahtar-değer çifti olarak girilir. Bu sayede gizli anahtarlar kaynak koda veya herkese açık dosyalara yazılmadan güvenle yönetilir.
Node.js uygulamasında yapılan kod değişiklikleri nasıl yayına alınır?
Dosyalar güncellendikten veya yeni bağımlılıklar kurulduktan sonra Plesk Node.js ekranındaki Uygulamayı Yeniden Başlat (Restart App) butonuna tıklanır veya proje kök dizininde tmp/restart.txt dosyası oluşturulup güncellenerek Passenger sürecinin taze kodu yüklemesi sağlanır.
Plesk hosting paketlerinde ücretsiz SSL sertifikası sunuluyor mu?
Evet. TREAS Plesk web hosting paketlerinde Let's Encrypt destekli ücretsiz SSL sertifikası standart olarak yer alır. Panel üzerinden alan adınız için tek tıklamayla SSL kurulumu yapabilir ve tüm HTTP trafiğini otomatik olarak HTTPS protokolüne yönlendirebilirsiniz.