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.



Leave a Comment

Bir Fedora 26 LAMP VPSye Directus 6.4 CMS Yükleme

Bir Fedora 26 LAMP VPSye Directus 6.4 CMS Yükleme

Farklı Bir Sistem mi Kullanıyorsunuz? Directus 6.4 CMS, geliştirici sağlayan güçlü ve esnek, ücretsiz ve açık kaynaklı Başsız İçerik Yönetim Sistemidir (CMS)

Pagekit CMSyi CentOS 7ye Yükleme

Pagekit CMSyi CentOS 7ye Yükleme

Farklı Bir Sistem mi Kullanıyorsunuz? Pagekit PHP ile yazılmış açık kaynaklı bir CMSdir. Pagekit kaynak kodu GitHubda herkese açık olarak barındırılıyor. Bu kılavuz size

Debian 9 Üzerinde Yakıt CMS Kurulumu

Debian 9 Üzerinde Yakıt CMS Kurulumu

Farklı Bir Sistem mi Kullanıyorsunuz? Fuel CMS, CodeIgniter tabanlı bir içerik yönetim sistemidir. Kaynak kodu GitHubda barındırılmaktadır. Bu kılavuz size

Ubuntu 16.04 LAMBA VPS Üzerine Omeka Classic 2.4 CMS Kurulumu

Ubuntu 16.04 LAMBA VPS Üzerine Omeka Classic 2.4 CMS Kurulumu

Farklı Bir Sistem mi Kullanıyorsunuz? Omeka Classic 2.4 CMS, digita paylaşımı için ücretsiz ve açık kaynaklı bir dijital yayıncılık platformu ve İçerik Yönetim Sistemidir (CMS)

Debian 9 Üzerinde Thelia 2.3 Kurulumu

Debian 9 Üzerinde Thelia 2.3 Kurulumu

Farklı Bir Sistem mi Kullanıyorsunuz? Thelia, e-iş web siteleri oluşturmak ve PHP ile yazılmış çevrimiçi içeriği yönetmek için açık kaynaklı bir araçtır. Thelia kaynak kodu i

CentOS 7 LAMP VPSye Couch CMS 2.0 Kurulumu

CentOS 7 LAMP VPSye Couch CMS 2.0 Kurulumu

Farklı Bir Sistem mi Kullanıyorsunuz? Couch CMS, web tasarımcılarının tasarlamalarını sağlayan basit ve esnek, ücretsiz ve açık kaynaklı bir İçerik Yönetim Sistemidir (CMS)

FreeBSD 12 Üzerinde Automad CMS Kurulumu

FreeBSD 12 Üzerinde Automad CMS Kurulumu

Farklı Bir Sistem mi Kullanıyorsunuz? Automad, PHPde yazılmış açık kaynaklı bir dosya tabanlı içerik yönetim sistemidir (CMS) ve şablon motorudur. Automad kaynak kodu i

Ubuntu 16.04 LAMBA VPSye 1.0 Ekim CMS Nasıl Kurulur

Ubuntu 16.04 LAMBA VPSye 1.0 Ekim CMS Nasıl Kurulur

Farklı Bir Sistem mi Kullanıyorsunuz? Ekim 1.0 CMS, Laravel çerçevesi üzerine kurulmuş basit ve güvenilir, ücretsiz ve açık kaynaklı bir İçerik Yönetim Sistemidir (CMS)

Debian 9 LAMP VPS Arka Plan CMS 1.8.0 Kurulumu

Debian 9 LAMP VPS Arka Plan CMS 1.8.0 Kurulumu

Farklı Bir Sistem mi Kullanıyorsunuz? Backdrop CMS 1.8.0, basit ve esnek, mobil uyumlu, ücretsiz ve açık kaynaklı bir İçerik Yönetim Sistemidir (CMS)

Debian 9a Cıvata CMS Takma (Uzatma)

Debian 9a Cıvata CMS Takma (Uzatma)

Farklı Bir Sistem mi Kullanıyorsunuz? Bolt PHP ile yazılmış açık kaynaklı bir CMSdir. Cıvata kaynak kodu GitHubda barındırılıyor. Bu kılavuz size Bolt CMnin nasıl kurulacağını gösterecektir

Ubuntu 16.04 Üzerinde Alfresco Community Edition Kurulumu

Ubuntu 16.04 Üzerinde Alfresco Community Edition Kurulumu

Farklı Bir Sistem mi Kullanıyorsunuz? Alfresco Community Edition, Alfresco İçerik Hizmetlerinin açık kaynaklı bir sürümüdür. Java ile yazılmıştır ve PostgreSQL t kullanır

FreeBSD 12ye WonderCMS Kurulumu

FreeBSD 12ye WonderCMS Kurulumu

Farklı Bir Sistem mi Kullanıyorsunuz? WonderCMS, PHPde yazılmış açık kaynaklı, hızlı ve küçük bir düz dosya CMSdir. WonderCMS kaynak kodu Githubda barındırılmaktadır. Bu kılavuz

Ubuntu 18.04 LTSye Neos CMS Kurulumu

Ubuntu 18.04 LTSye Neos CMS Kurulumu

Farklı Bir Sistem mi Kullanıyorsunuz? Neos, bir CMS ve özünde bir uygulama çerçevesine sahip bir İçerik Uygulama Platformudur. Bu kılavuz size nasıl kurulum yapacağınızı gösterecektir.

Debian 9 Üzerinde PyroCMS Kurulumu

Debian 9 Üzerinde PyroCMS Kurulumu

Farklı Bir Sistem mi Kullanıyorsunuz? PyroCMS, PHP ile yazılmış açık kaynaklı bir CMSdir. PyroCMS kaynak kodu GitHubda barındırılmaktadır. Bu kılavuzda entir boyunca yürüyün

Alfresco Community Editionı CentOS 7ye Yükleme

Alfresco Community Editionı CentOS 7ye Yükleme

Farklı Bir Sistem mi Kullanıyorsunuz? Alfresco Community Edition, Alfresco İçerik Hizmetlerinin açık kaynaklı bir sürümüdür. Java ile yazılmıştır ve PostgreSQL t kullanır

Ubuntu 18.04 LTSye Tiki Wiki CMS Grup Yazılımını Yükleme

Ubuntu 18.04 LTSye Tiki Wiki CMS Grup Yazılımını Yükleme

Farklı Bir Sistem mi Kullanıyorsunuz? Giriş Tiki Wiki Tiki olarak da bilinen CMS Groupware, ücretsiz ve açık kaynaklı bir wiki içerik yönetim sistemidir. Tikis özelliği

Subrion 4.1 CMSyi Fedora 26 LAMP VPSye Yükleme

Subrion 4.1 CMSyi Fedora 26 LAMP VPSye Yükleme

Farklı Bir Sistem mi Kullanıyorsunuz? Subrion 4.1 CMS, sezgisel ve net bir içerik getiren güçlü ve esnek bir açık kaynaklı İçerik Yönetim Sistemidir (CMS)

Ubuntu 18.04 Üzerinde BoltWire Kurulumu

Ubuntu 18.04 Üzerinde BoltWire Kurulumu

Farklı Bir Sistem mi Kullanıyorsunuz? Giriş BoltWire, PHP ile yazılmış ücretsiz ve hafif bir içerik yönetim sistemidir. Diğer İçerik Yöneticilerinin çoğuyla karşılaştırıldığında

CentOS 7 LAMP VPS Redaxscript 3.2 CMS Nasıl Kurulur

CentOS 7 LAMP VPS Redaxscript 3.2 CMS Nasıl Kurulur

Farklı Bir Sistem mi Kullanıyorsunuz? Redaxscript 3.2 CMS, roket-fas ile modern ve ultra hafif, ücretsiz ve açık kaynaklı bir İçerik Yönetim Sistemidir (CMS)

Bir Fedora 26 LAMP VPS Üzerine TextPattern CMS 4.6.2 Kurulumu

Bir Fedora 26 LAMP VPS Üzerine TextPattern CMS 4.6.2 Kurulumu

Farklı Bir Sistem mi Kullanıyorsunuz? TextPattern CMS 4.6.2, web tasarımcılarına izin veren basit, esnek, ücretsiz ve açık kaynaklı bir İçerik Yönetim Sistemidir (CMS)

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

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.

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.

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.

CAPTCHA: İnsan-AI Ayrımı İçin Ne Kadar Geçerli Bir Teknik Kalabilir?

CAPTCHA: İnsan-AI Ayrımı İçin Ne Kadar Geçerli Bir Teknik Kalabilir?

CAPTCHA, son birkaç yılda kullanıcıların çözmesi oldukça zorlaştı. Gelecekte spam ve bot tespitinde etkili kalabilecek mi?

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.

Teletıp ve Uzaktan Sağlık Hizmeti: Gelecek Burada

Teletıp ve Uzaktan Sağlık Hizmeti: Gelecek Burada

Teletıp, uzaktan sağlık hizmetleri ve gelecek nesiller üzerindeki etkisi nedir? Pandemi durumunda iyi bir yer mi değil mi? Bir görünüm bulmak için blogu okuyun!

Hackerların Nasıl Para Kazandığını Hiç Merak Ettiniz mi?

Hackerların Nasıl Para Kazandığını Hiç Merak Ettiniz mi?

Bilgisayar korsanlarının çok para kazandığını duymuş olabilirsiniz, ancak bu kadar parayı nasıl kazandıklarını hiç merak ettiniz mi? Hadi tartışalım.

macOS Catalina 10.15.4 Ek Güncellemesi Çözmekten Daha Fazla Soruna Neden Oluyor

macOS Catalina 10.15.4 Ek Güncellemesi Çözmekten Daha Fazla Soruna Neden Oluyor

Son zamanlarda Apple, sorunları gidermek için macOS Catalina 10.15.4'ü ek bir güncelleme yayınladı, ancak güncelleme, mac makinelerinde tuğla oluşmasına neden olan daha fazla soruna neden oluyor gibi görünüyor. Daha fazla bilgi edinmek için bu makaleyi okuyun