Ubuntu 16.04te Nginx Ters Proxy Kullanarak Keystone.js Sunucusu Kurma

Bu derste, ters proxy'li bir web sunucusu kuracağız. Kullanacağımız CMS, Express.js tabanlı iyi bilinen bir web uygulaması çerçevesi olan Keystone.js'dir. Kullanacağımız ters proxy, ücretsiz ve açık kaynaklı bir ters proxy olan Nginx ve bir HTTP sunucusudur. Kullanacağımız veritabanı, NoSQL belge veritabanı olan MongoDB'dir. Bu, kayıtların ayarlandığı bir alan adınızın olmasını gerektirir. Bu setiniz yoksa, devam edin ve bununla ilgilenin ve bu eğiticiye geri dönün.

Düğüm Yükleme

İlk olarak, Chrome V8 Javascript motorunu temel alan bir Javascript yorumlayıcısı olan Node.js'yi yükleyeceğiz.

curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
sudo apt-get install -y nodejs
sudo apt-get install -y build-essential

Nginx Kurulumu

Ardından, ters proxy sunucumuz Nginx'i kuracağız.

sudo apt update
sudo apt install nginx

Bu paket listelerini güncelleyecek ve Nginx'i kuracaktır. Kurulum tamamlandığında, düğüm projemizi kuracağız.

Keystone projemizin başlatılması

Düğüm projemizi oluşturun. Bunu yapmak için yeni bir klasör oluşturmanız yeterlidir.

mkdir website

Sonra package.jsondosyamızı yaratacağız . Bunu yapmak npm initiçin terminalinizi çalıştırın , alanları doldurun ve yesonaylamak için " " yanıtını verin . package.jsonDosyayı oluşturduktan sonra, aşağıdaki düğüm modüllerini kuracağız.

sudo npm install -g generator-keystone
sudo npm install -g yo

Bunlar indirmeyi tamamladıktan sonra aşağıdakileri çalıştırın.

yo keystone

Gerekli alanları doldurun. Bu soracaktır project name, template engine, emailkontrol paneli için, ve bu kadar. Ne seçeceğinizi bilmiyorsanız, varsayılanlar iyi olacaktır. Kilit taşı kurulumunuzu yapılandırdıktan sonra node keystone, uygulamanızı başlatmak için yazarak sunucumuzun çalışıp çalışmadığını test edebiliriz . Varsayılan olarak, uygulamanız localhostbağlantı noktasında çalışır 3000. MongoDB yüklü değilse, bir veritabanının hemen kullanılamayacağını unutmayın. Nasıl kurulacağını daha sonra öğreticide öğrenebilirsiniz.

Keystone.js için temel dizin düzeni şunlardır:

  • /lib - Burası özel kitaplıklarınızı ve diğer kodlarınızı saklayacağınız yerdir.

  • /models- Bu, uygulamanızın veritabanı modellerini depolayacağınız yerdir. KeystoneJS veritabanı sağlayıcısı olarak MongoDB'yi kullanır.

  • /public - Burası statik dosyalarınızın (CSS, JS, resimler vb.) Depolanacağı yerdir.

  • /routes/api - Bu, uygulamanızın API denetleyicilerinin depolanacağı yerdir.

  • /routes.views - Uygulama görünümü denetleyicileri burada saklanacaktır.

  • /templates - Bu, uygulamanızın tüm şablon dosyalarının saklanacağı yerdir.

  • /updates - Taşıma komut dosyalarınızın saklanacağı yer burasıdır.

  • package.json - Bu, jeneratörün bizim için oluşturduğu npm yapılandırma dosyanızdır.

  • keystone.js - Ana başlangıç ​​dosyamız, web sitesini başlattığımızda bunu çalıştırıyoruz.

Veritabanımızı başlatma

Daha önce de belirttiğimiz gibi, kullanacağımız veri tabanımız güvenilir bir NoSQL, belge yönelimli veritabanı olan MongoDB'dir. MongoDB zaten kurulu ise, bu bölümü atlayabilirsiniz. Değilse, Ubuntu 16.04'e nasıl yükleyeceğiniz aşağıda açıklanmıştır.

MongoDB paketi için kullanılan ortak anahtarı alın.

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 0C49F3730359A14518585931BC711F9BA15703C6

Paketi yüklemek için kullanılan liste dosyasını oluşturun.

echo "deb [ arch=amd64,arm64 ] http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.4.list

Kullanarak paket listelerinizi güncelleyin apt.

sudo apt update

Son olarak, MongoDB'yi yükleyin.

sudo apt install mongodb-org -y

Bu kurulum tamamlandığında MongoDB'yi başlatın.

sudo service mongod start

Bu bağlantı noktasında MongoDB işlemini başlatır 27017.

Uygulama boyunca MongoDB kullanılacak ve modellerimiz için kullandığımız bilgileri, örneğin bir Usermodeli depolamak için kullanılacaktır . Keystone bunu tercih edilen veritabanı olarak kullanır ve şu anda diğer veritabanı satıcılarını kullanamazsınız.

PM2 Kurulumu

Şimdi PM2 (Process Manager 2) kurulum zamanı. PM2, Node.js uygulamaları için bir npm modülü biçiminde bir süreç yöneticisidir. Uygulamalarınızı yönetmeniz ve arka planda çalıştırmanız için kolay bir yol sağlar. NPM'de olduğu için, yüklemek için tek yapmamız gereken aşağıdaki.

sudo npm install pm2 -g

Bu, npm'ye global olarak yüklemesini söyler, böylece sistemimizde herhangi bir yerde kullanabiliriz.

PM2'de bir uygulamayı çalıştırma / yönetme

Daha önce web uygulamamızı çalıştırdık node keystone. PM2 ile biraz farklı. Artık düğüm uygulamamızı aşağıdakilerle çalıştırıyoruz.

pm2 start keystone.js

Bu, PM2 uygulamamızı süreç listemize ekleyecek ve gerçekten çevrimiçi olduğunu görebilmeniz için küçük bir kutu görüntülenecektir. İşleminiz için etiketlenmiş kutuya dikkat edin id. Daha sonra buna değineceğimiz için bunu yakın tutun.

Uygulamanızın günlüklerini görmek için.

pm2 logs [id]

Örneğin, pm2 logs 0bu ilk PM2 uygulamanızsa.

Web uygulamanızı istediğiniz zaman durdurmak için.

pm2 stop [id]

Uygulamanızı tamamen silmek için.

pm2 delete [id]

Uygulamanızla ilgili bazı temel istatistikleri görmek istiyorsanız, PM2'nin bir izleme panosu bile vardır ve buna bununla erişebilirsiniz.

pm2 monit

Bu RAM kullanımı, CPU kullanımı ve çalışma süresi gibi bazı temel bilgileri gösterecektir.

PM2'nin sunduğu harika bir özellik watching. Özünde, PM2 başlangıç ​​dosyanızla aynı dizindeki dosyalarda yapılan değişiklikleri otomatik olarak algıladığında izlenir ve uygulamanızı otomatik olarak yeniden başlatır. Etkinleştirmek için uygulamanızı yeniden başlatın, ancak bir saat bayrağı iletin.

pm2 restart [id] --watch

Etkinleştirildikten sonra izlemeyi devre dışı bırakmak için aynı komutu tekrar çalıştırın; izleme devre dışı bırakılır.

Bu derste, izlemeyi bırakacağız.

Ters proxy'nizi ayarlama

Nginx'in kurulu olduğundan emin olun. Herhangi bir nedenden ötürü değilse, yukarıdaki adımlara bakın.

Güvenlik duvarı ayarlarınızı yapın. Ubuntu'da ufwresmi güvenlik duvarı var. Varsayılan olarak bağlantılar bağlantı noktasında engellenir 80. 80Web uygulamamızın çalışacağı bağlantı noktasında Nginx için bir istisna eklememiz gerekiyor .

sudo ufw allow 'Nginx HTTP'

Nginx sunucunuzun çalıştığını doğrulayın.

systemctl status nginx

ActiveBölümün altında, görürseniz active (running), hepiniz hazırsınız. Değilse, hizmeti yeniden başlatmayı deneyebilirsiniz.

systemctl restart nginx

Varsayılan Nginx yapılandırma dosyasını silin.

sudo rm /etc/nginx/sites-available/default

Yeni bir tane oluşturun ve arayın node.

sudo nano /etc/nginx/sites-available/node

Aşağıdakileri dosyaya yapıştırın ve example.comweb sitenizin alan adıyla değiştirin .

listen 80;

server_name example.com;

    location / {

        proxy_set_header   X-Forwarded-For $remote_addr;

        proxy_set_header   Host $http_host;

        proxy_pass         "http://127.0.0.1:3000";
    }
}

Not olduğunu proxy_passgösterir IP eden Keystone uygulaması olan yerel olarak çalıştığı localhostbağlantı noktası üzerinde 3000. listen 80Uygulamanın yönlendirilmesini istediğimiz bağlantı noktası, bu durumda bağlantı noktası 80.

Ardından, adlandırılmış bir klasöre bir sembolik bağlantı veya sembolik bağlantı oluşturmamız gerekir sites-enabled. Arasındaki fark sites-enabledve sites-availableyani sites-enabledaslında Nginx tarafından yüklenir.

sudo ln -s /etc/nginx/sites-available/node /etc/nginx/sites-enabled/node

Şimdi içindeki yapılandırma dosyanız sites-availablekullanıma hazır olacak ve dosya yüklenecektir sites-enabled. Yapılandırmayı yürürlüğe girecek şekilde uygulamak için Nginx'i yeniden başlatmanız yeterlidir.

sudo systemctl restart nginx

Son olarak, PM2 uygulamanızı yeniden başlatın

pm2 restart [id]

Artık alan adınıza bir tarayıcıda gidebilir ve giriş yapabileceğiniz Welcome to Keystonebir panel içeren bir ekran görürsünüz .

Bunu görürseniz, başarıyla bir Node.js üretim web sunucusu kurdunuz. Değilse, bir adımı yanlış yapmış olabilirsiniz ve geri dönüp her adımı dikkatlice takip etmek isteyebilirsiniz.

Web sitelerini ziyaret ederek Nginx hakkında daha fazla bilgi edinebilirsiniz .

Umarım bu öğreticiyi beğenmişsinizdir ve umarım bu Vultr VPS'nizde üretim için kendi web sunucunuzu kurmanıza yardımcı olmuştur.

Yorum bırak

CentOS 7de LibreNMS Kullanarak Cihazlarınızı İzleyin

CentOS 7de LibreNMS Kullanarak Cihazlarınızı İzleyin

CentOS 7 üzerinde LibreNMS kullanarak ağ cihazlarınızı etkili bir şekilde izleyin. Ağ izleme için gerekli adımları ve yapılandırmaları öğrenin.

Counter-Strike: Global Offensive Server Nasıl Kurulur?

Counter-Strike: Global Offensive Server Nasıl Kurulur?

Counter-Strike: Global Offensive sunucusu kurmak için gerekli adımlar. Gerekli araçlar ve yükleme süreci hakkında bilgi.

Ubuntu 16.04 LTS Üzerinde OpenNMS Kurulumu

Ubuntu 16.04 LTS Üzerinde OpenNMS Kurulumu

OpenNMS, çok sayıda cihazı izlemek ve yönetmek için kullanılabilen bir açık kaynak ağ yönetim platformudur. Ubuntu 16.04 LTS üzerinde OpenNMS kurulumu için tüm adımları keşfedin.

Ubuntu 16.04te LibreNMS Kullanarak Cihazlarınızı İzleyin

Ubuntu 16.04te LibreNMS Kullanarak Cihazlarınızı İzleyin

Farklı Bir Sistem mi Kullanıyorsunuz? LibreNMS tam özellikli bir açık kaynak ağ izleme sistemidir.

26 Büyük Veri Analitik Tekniğine Bir Bakış: 1. Bölüm

26 Büyük Veri Analitik Tekniğine Bir Bakış: 1. Bölüm

26 Büyük Veri Analitik Tekniğine Bir Bakış: 1. Bölüm

Büyük Veri Referans Mimarisi Katmanlarının İşlevleri

Büyük Veri Referans Mimarisi Katmanlarının İşlevleri

Büyük Veri Mimarisindeki farklı katmanları ve işlevlerini en basit şekilde öğrenmek için blogu okuyun.

Nintendo Switch Hakkında Son Derece Çılgın 6 Şey

Nintendo Switch Hakkında Son Derece Çılgın 6 Şey

Birçoğunuz Switch'in Mart 2017'de çıkacağını ve yeni özelliklerini biliyorsunuz. Bilmeyenler için, 'Switch'i 'olmazsa olmaz bir gadget' yapan özelliklerin bir listesini hazırladık.

Hala Teslim Edilmeyen Teknoloji Sözleri

Hala Teslim Edilmeyen Teknoloji Sözleri

Teknoloji devlerinin sözlerini yerine getirmesini mi bekliyorsunuz? teslim edilmeyenleri kontrol edin.

Yapay Zeka Süreç Otomasyonunu Nasıl Bir Sonraki Seviyeye Taşıyabilir?

Yapay Zeka Süreç Otomasyonunu Nasıl Bir Sonraki Seviyeye Taşıyabilir?

Yapay Zekanın küçük ölçekli şirketler arasında nasıl popüler hale geldiğini ve onları büyütme ve rakiplerine üstünlük sağlama olasılıklarını nasıl artırdığını öğrenmek için bunu okuyun.

Teknolojik Tekillik: İnsan Uygarlığının Uzak Bir Geleceği mi?

Teknolojik Tekillik: İnsan Uygarlığının Uzak Bir Geleceği mi?

Bilim hızla gelişip birçok çabamızı üstlendikçe, kendimizi açıklanamaz bir Tekilliğe maruz bırakmanın riskleri de artıyor. Okuyun, tekillik bizim için ne anlama gelebilir.