10 Nisan 2015 Cuma

Debian 7 (wheezy) üzerinde MongoDb, NodeJs ve Nginx kurulumu

Merhabalar,

Yüksek performans istenen projelerde sistemlerin Microsoft teknolojileri ile istenen çözümleri yersiz kaynak tüketimi yapmadan olamayacağını anladığımdan beri, son bir kaç yıldır Linux dünyasını incelemeye başlamıştım. İşin içine girdikçe gördüm ki çok geç kalmıştım :(

Zararın neresinden dönersek kardır misali çalışmalara devam ettim. İşte geldiğim noktada bügün harika bir üçlü olarak gördüğüm MongoDb, NodeJs ve Nginx'in Debian 7 (wheezy) üzerinde kurulumlarını kısaca anlatmaya çalışacağım.

İlk olarak Debian üzerindeki paketleri alacak olduğunuz kaynak listelerini güncellemekte fayda var.
Çünkü ilk kurulumdaki kaynak listesinde kurulum DVD'si kalıyor ve siz değiştirmedikçe ilk kurulumları hep DVD'den yapmak istiyor.

İlk olarak kaynak listesini düzenleyelim;

nano /etc/apt/sources.list

Yukarıdaki komutu console dan yazıyoruz ve eski satırların başlarına # işaretini ekleyip eski olan satırları yorum yapıp kapatıyoruz.

Sonrasında aşağıdakileri kaynak listesine ekliyoruz.

deb http://http.debian.net/debian wheezy main 
deb-src http://http.debian.net/debian wheezy main 

deb http://http.debian.net/debian wheezy-updates main 
deb-src http://http.debian.net/debian wheezy-updates main 

deb http://security.debian.org/ wheezy/updates main 
deb-src http://security.debian.org/ wheezy/updates main

Ctrl + O ile yaptığımız değişiklikleri kaydediyoruz ve  Ctrl + X  ile editörden çıkıyoruz.

Yaptığımız değişikliklerden sonra varsa sistemdeki olası güncellemeleri yapmak için aşağıdaki komutları çalıştırmakta fayda var. Güncel bir kurulumunuz var ise yapmanıza çokta gerek olmayabilir.

sudo apt-get update
sudo apt-get upgrade


MongoDB kurulumu


İlk önce GPG Key oluşturmamız gerekiyor.
Aşağıdaki komut ile GPG Key oluşturuyoruz

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv 7F0CEB10

Yukarıdaki işlemi tamamladıktan sonra kaynak listesine MongoDb kaynak listesini ekliyoruz.
Aşağıdaki komut ile kaynak listesine ekleme yapıyoruz

echo "deb http://repo.mongodb.org/apt/debian "$(lsb_release -sc)"/mongodb-org/3.0 main" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.0.list

Eğer Debian'ı kurarken lsb_release kurmadı iseniz aşağıdaki komut ile kurabilirsiniz.

apt-get install lsb-release

Bu işlemleri yaptıktan sonra paketlerimizi güncellemekte fayda var ve aşağıdaki komut ile güncelliyoruz.

sudo apt-get update

Artık MongoDB yi Debian üzerine kurmaya hazırız. Aşağıdaki komut ile kuruyoruz. Burada -y parametresini sistem her defasında kendi root olarak mongod servisini çalıştırsın diye özellikle veriyoruz.

sudo apt-get install -y mongodb-org

Yukarıdaki komutu çalıştırdıktan sonra sistem paketleri indirip kurmaya başlayacak ve son olarakta mongod servisini çalıştıracak ve böylelikle MongoDb Debian üzerinde çalışmaya başlayacak.

NodeJS Kurulumu

NodeJS'i kurmadan önce NPM paketlerini sistemimize rahatlıkla yüklemek için NodeJS NPM kaynaklarını sistemimize tanıtmamız gerekiyor ve bunu da Curl ile yapıyoruz. Bu durumda sisteminizde ilk kurulumda Curl de yüklü olmayabilir.

Aşağıdaki komut ile ilk olarak Curl kuruyoruz.

apt-get install curl

Curl kurulumu bittikten sonra NPM paketlerini yerini göstermek için aşağıdaki komutu çalıştırıyoruz.

curl -sL https://deb.nodesource.com/setup | bash -

Şimdi artık NodeJs'i sistemimize kurabiliriz. Aşağıdaki komut ile kurulumu yapıyoruz.

apt-get install -y nodejs

NodeJs'in Build Tool'unu kurmak istersenizde aşağıdaki komutu çalıştırmanız yeterli olacaktır.

apt-get install -y build-essential

Böylelikle NodeJs kurulumunu da tamamlamış olduk.


Nginx Kurulumu

Nginx kurulumu için aşağıdaki komutu kullanabilirsiniz.

apt-get install nginx

Nginx'in ekstra olan paketlerini kurmak için ise aşağıdaki komutu kullanabilirsiniz.

sudo apt-get install nginx-extras supervisor

Nginx kurulumunu da tamaladıktan sonra şimdi sıra NodeJs ile Nginx'i birlikte çalıştırmaya geldi.
Tahmin edeceğiniz üzere bazı ayarlar yapmak gerekiyor.

İşte ayarlar;

Nginx'in virtual.conf dosyasında değişiklik yapmak gerekiyor. Aşağıdaki komut ile dosyayı düzenlemeye başlıyoruz.

nano /etc/nginx/conf.d/virtual.conf

virtual.conf dosyasına aşağıdaki değişiklikleri ekledikten sonra nginx servisini restart etmeniz halinde Nodejs artık Nginx üzerinde çalışmaya başlayacaktır.

Ayarları kendinize göre değiştirebileceğinizi unutmayın.

İşte ayarlar;

server { 
 listen 0.0.0.0:80; 
 server_name btuzmani.com; 
 access_log /var/log/nginx/btuzmani_com.log; 

 location / { 
 proxy_set_header X-Real-IP $remote_addr; 
 proxy_set_header HOST $http_host; 
 proxy_set_header X-NginX-Proxy true; 
 proxy_pass http://127.0.0.1:; 
 proxy_redirect off; 
 }

Ayaraları kaydettikten sonra Nginx restart komutu yazıyoruz.

sudo service nginx restart

Son olarak yaptığımız ayarların çalıştığını görmek için aşağıdaki gibi küçük bir NodeJs uygulaması yazıyoruz ve app.js ismi ile kaydediyoruz.

app.js:

var http = require('http'); 
http.createServer(function (req, res) { 
 res.writeHead(200, {'Content-Type': 'text/plain'}); 
 res.end('Merhaba, Nginx üzerinden NodeJs kodunu çalıştırdınız.\n');
}).listen(2015, '10.211.55.6'); 
console.log('Sunucu http://10.211.55.6:2015/ üzerinde çalışıyor.')

Sonrasında ise NodeJs'in yazmış olduğumuz uygulamayı aşağıdaki komut ile çalıştırmasını sağlıyoruz.

node app.js

Son olarak, eğer sunucunun restart edilmesi durumunda NodeJs'in app.js'i yeniden çalıştırmasını istiyorsanız nodejs'in forever paketini kurmanız gerekiyor ve ve forever'a app.js'i her start da çalıştırması gerektiğini bildiren komutu vermeniz gerekiyor.

İşte komutlar;

npm install forever -g

forever start app.js


Hepsi bu kadar :)

Umarım işinize yarar, zaman ayırıp okuduğunuz için teşekkürler.
Cihan.


Kaynakça;