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 + Oile yaptığımız değişiklikleri kaydediyoruz ve
Ctrl + Xile 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_releasekurmadı 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
rootolarak
mongodservisini ç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 KurulumuNodeJS'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 KurulumuNginx 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.confdosyası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.confdosyası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;
- http://docs.mongodb.org/manual/tutorial/install-mongodb-on-debian/
- https://github.com/joyent/node/wiki/installing-node.js-via-package-manager
- https://scottlinux.com/2014/08/27/how-to-run-node-js-app-in-supervisor-behind-nginx-on-debian-wheezy/
- https://alicoding.com/how-to-run-node-js-web-server-on-nginx-in-centos-6-4/