/ Nasıl Yapılır?

Plesk'te Node.js uygulamaları çalıştırmak

Sunucumuz üzerinde birden fazla domain barınıyorsa, komut satırıyla Apache ya da nginx configure etmek ve Mysql veritabanı oluşturmak gibi işlemler zaman alabiliyor. Bu yüzden Plesk kullanmak ideal olabiliyor. Ancak Plesk üzerinden Node.js uygulaması çalıştırmak istediğimizde panelde Node.js desteğini göremeyebiliyoruz. Normalde Plesk 11'de Node.js extension'ı bulunuyordu ancak bu sürümde -henüz- bulunmuyor. Bu yazıda Plesk 12'de Node.js uygulamaları nasıl manuel kurulur onu anlatacağım.

Normalde Node.js uygulamalarını nodejs server.js olarak çalıştırabiliyoruz değil mi? Ancak terminal ekranını kapattığımızda ya da cmd + C yaptığımızda uygulama da kapanıyordu. Bu yüzden Node.js process manager olan PM2'yi kullanacağız. PM2 ile Node.js uygulamalarını sonsuza dek çalışır durumda bırakabiliriz.

Şimdi sunucumuza SSH ile bağlanalım. Önce sudo apt-get update ile paket yönetisini güncelleyelim. Daha sonra PM2'yi kuralım.

npm install pm2 -g  

Şimdi herhangi bir Node.js uygulamamıza gidelim.

cd /var/www/sites/ornek-nodejs-uygulamasi

Bunun küçük bir blog uygulaması olduğunu ve varsayılan olarak 1234 portunu kullandığını varsayalım.

Yani uygulamayı nodejs server.js olarak çalıştırdığımızda, http://ornek-blog.com:1234 ya da http://localhost:1234 adresinden açılması gerekiyor.

Şimdi bu uygulamayı PM2 ile çalıştıralım.

pm2 start server.js  

Bu uygulamamız artık biz terminal'den çıksak da çalışabilir halde. Ancak sunucuya reset attığımızda yine kapanacaktır.

Bu yüzden kullanmamız gereken komutlar şunlardır:

pm2 startup

Bu komut, sunucumuz yeniden başladığında PM2'nin tekrar çalışması için gereken işlemleri yapar.

pm2 save

Bu komut, şuan çalışmakta olan PM2 process'larını, sunucu reboot olduktan sonra da çalıştırılmasını sağlar.

Şimdi SSH ile işimiz kalmadı. Plesk panelimize girelim. Node.js uygulamasının kurulacağı domainin "Apache & nginx Settings" sayfasına girelim.

En altta "Additional nginx directives" bulunuyor. Aşağıdaki nginx configurasyonunu, bu bölüme ekleyip kaydedelim.

location ~ / {
	proxy_set_header Host $host;
	proxy_set_header X-Real-IP $remote_addr;
	proxy_pass http://localhost:1234;
}

Hepsi bu. Artık http://ornek-blog.com adresinden uygulamamıza erişebileceğiz.

Unutmadan, uygulamamızın sunucu IP adresini 0.0.0.0 yaparsak, Apache olmadan direkt olarak http://ornek-blog.com:1234 şeklinde erişim sağlanabilir. Bu yüzden IP adresini her zaman 127.0.0.1 olarak ayarlamalıyız.

İyi çalışmalar.