Konfigurera en Keystone.js-server med Nginx Reverse Proxy på Ubuntu 16.04

I den här handledningen kommer vi att ställa in en webbserver med en omvänd proxy. CMS vi kommer att använda är Keystone.js, ett välkänt ramverk för webbapplikationer baserat på Express.js. Den omvända proxyn vi kommer att använda är Nginx, som är en gratis omvänd proxy med öppen källkod, samt en HTTP-server. Databasen vi kommer att använda är MongoDB, en NoSQL-dokumentdatabas. Detta kräver att du har en domän med poster inställda. Om du inte har det setet, fortsätt och ta hand om det och återvänd till den här handledningen.

Installerar Node

Först kommer vi att installera Node.js, som är en Javascript-tolk baserad på Chrome V8 Javascript-motorn.

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

Installerar Nginx

Därefter kommer vi att installera Nginx, vår omvänd proxy.

sudo apt update
sudo apt install nginx

Detta kommer att uppdatera paketlistorna och installera Nginx. När installationen är klar kommer vi att ställa in vårt nodprojekt.

Initierar vårt Keystone-projekt

Skapa vårt nodprojekt. För att göra det, skapa helt enkelt en ny mapp.

mkdir website

Sedan skapar vi vår package.jsonfil. För att göra det, kör helt enkelt npm initi din terminal, fyll i fälten och svara " yes" för att bekräfta. När du har skapat package.jsonfilen kommer vi att installera följande nodmoduler.

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

När de har laddats ner, kör följande.

yo keystone

Fyll i de obligatoriska fälten. Den kommer att fråga dig efter project name, template engine, emailför kontrollpanelen och så vidare. Om du inte vet vad du ska välja kommer standardinställningarna att vara bra. När du har konfigurerat din keystone-inställning kan vi testa för att se om vår server körs genom att skriva för node keystoneatt starta din applikation. Som standard kommer din applikation att köras på localhost, på port 3000. Observera att om du inte har MongoDB installerat kommer en databas inte att vara tillgänglig för dig direkt. Du kan lära dig hur du installerar det senare i handledningen.

Här är den grundläggande kataloglayouten för Keystone.js:

  • /lib - Det är här du kommer att lagra dina anpassade bibliotek och annan kod.

  • /models– Det är här du kommer att lagra din applikations databasmodeller. KeystoneJS använder MongoDB som databasleverantör.

  • /public - Det är här dina statiska filer (CSS, JS, bilder och så vidare) kommer att lagras.

  • /routes/api - Det är här din applikations API-kontroller kommer att lagras.

  • /routes.views - Programvykontroller kommer att lagras här.

  • /templates - Det är här alla din applikations mallfiler kommer att lagras.

  • /updates - Det är här dina migreringsskript kommer att lagras.

  • package.json – Det här är din npm-konfigurationsfil som generatorn genererade åt oss.

  • keystone.js – Vår huvudstartfil, den kör vi när vi startar upp hemsidan.

Initiering av vår databas

Som nämnts tidigare är vår databas som vi kommer att använda MongoDB, som är en pålitlig NoSQL, dokumentorienterad databas. Om du redan råkar ha MongoDB installerat kan du hoppa över det här avsnittet. Om inte, så här installerar du det på Ubuntu 16.04.

Importera den publika nyckeln som används för mongoDB-paketet.

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

Skapa listfilen som används för att installera paketet.

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

Uppdatera dina paketlistor med apt.

sudo apt update

Slutligen, installera MongoDB.

sudo apt install mongodb-org -y

När denna installation är klar, starta MongoDB.

sudo service mongod start

Detta kommer att starta MongoDB-processen på port 27017.

MongoDB kommer att användas i hela applikationen, och den kommer att användas för att lagra information som vi använder för våra modeller, till exempel en Usermodell. Keystone använder den som sin valbara databas, och för närvarande kan du inte använda andra databasleverantörer.

Installerar PM2

Nu är det dags att installera PM2 (Process Manager 2.) PM2 är en processhanterare för Node.js-applikationer, i form av en npm-modul. Det ger dig ett enkelt sätt att hantera dina applikationer och köra dem i bakgrunden. Eftersom det är i NPM, är allt vi behöver göra för att installera det att köra följande.

sudo npm install pm2 -g

Detta säger åt npm att installera det globalt, så att vi kan använda det var som helst i vårt system.

Köra/hantera en applikation på PM2

Tidigare körde vi vår webbapplikation med node keystone. Med PM2 är det lite annorlunda. Vi kör nu vår nodapp med följande.

pm2 start keystone.js

Detta kommer att lägga till vår PM2-applikation till vår processlista, och en liten ruta kommer att visas så att du kan se att den verkligen är online. Lägg märke till rutan märkt idför din process. Håll detta nära, eftersom vi kommer att göra många referenser till detta senare.

För att se loggarna för din applikation.

pm2 logs [id]

Till exempel, pm2 logs 0om detta är din första PM2-applikation.

För att stoppa din webbapplikation när som helst.

pm2 stop [id]

För att helt radera din ansökan.

pm2 delete [id]

PM2 har till och med en övervakningspanel om du vill se lite grundläggande statistik för din applikation, och du kan komma åt den med denna.

pm2 monit

Detta kommer att visa lite grundläggande information som RAM-användning, CPU-användning och drifttid.

En fantastisk funktion som PM2 erbjuder är watching. I huvudsak är att titta när PM2 automatiskt upptäcker ändringar av någon av filerna i samma katalog som din startfil, och den kommer automatiskt att starta om din applikation. För att aktivera det, starta helt enkelt om din applikation, men skicka den en bevakningsflagga.

pm2 restart [id] --watch

För att inaktivera tittande efter att det har aktiverats, kör bara samma kommando igen, och titta kommer att inaktiveras.

I den här handledningen kommer vi att sluta titta.

Konfigurera din omvänd proxy

Se till att du har Nginx installerat. Om det av någon anledning inte är det, referera till stegen ovan.

Justera dina brandväggsinställningar. På Ubuntu ufwär den officiella brandväggen. Som standard är anslutningar blockerade på port 80. Vi måste lägga till ett undantag för Nginx on port 80, som vår webbapplikation kommer att köras på.

sudo ufw allow 'Nginx HTTP'

Kontrollera att din Nginx-server körs.

systemctl status nginx

Under Activeavsnittet, om du ser active (running), är du redo. Om inte kan du försöka starta om tjänsten.

systemctl restart nginx

Ta bort standard Nginx-konfigurationsfilen.

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

Skapa en ny och kalla den helt enkelt node.

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

Klistra in följande i filen och ersätt example.commed din webbplatsdomän.

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";
    }
}

Observera att den proxy_passanger IP som vår Keystone-app körs på lokalt, vilket är localhostpå port 3000. listen 80är den port vi vill att appen ska dirigeras till, vilket i det här fallet är port 80.

Sedan måste vi skapa en symbolisk länk, eller symbolisk länk till en mapp som heter sites-enabled. Skillnaden mellan sites-enabledoch sites-availableär att den sites-enabledfaktiskt laddas av Nginx.

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

Nu är din konfigurationsfil i sites-availableklar att användas och den kommer att laddas från sites-enabled. För att tillämpa konfigurationen så att den träder i kraft, starta helt enkelt om Nginx.

sudo systemctl restart nginx

Slutligen, starta om din PM2-applikation

pm2 restart [id]

Nu kan du navigera till din domän i en webbläsare, och du kommer att se en Welcome to Keystoneskärm med en panel där du kan logga in.

Om du ser det har du framgångsrikt konfigurerat en Node.js-produktionswebbserver. Om inte, kan du ha gjort ett steg felaktigt, och du kanske vill gå tillbaka och följa varje steg noggrant.

Du kan lära dig mer om Nginx genom att besöka deras hemsida .

Jag hoppas att du gillade den här handledningen, och jag hoppas att detta har hjälpt dig att sätta upp din egen webbserver för produktion på din Vultr VPS.


Hur man installerar Thelia 2.3 på Debian 9

Hur man installerar Thelia 2.3 på Debian 9

Använder du ett annat system? Thelia är ett verktyg med öppen källkod för att skapa e-handelswebbplatser och hantera onlineinnehåll skrivet i PHP. Thelia källkod i

Hur man installerar Microweber på CentOS 7

Hur man installerar Microweber på CentOS 7

Använder du ett annat system? Microweber är en öppen källkod för dra och släpp CMS och onlinebutik. Microweber källkod finns på GitHub. Denna guide kommer att visa dig

Installera Microweber på Ubuntu 16.04

Installera Microweber på Ubuntu 16.04

Använder du ett annat system? Microweber är en öppen källkod för dra och släpp CMS och onlinebutik. Microweber källkod finns på GitHub. Denna guide kommer att visa dig

Hur man installerar dotCMS på Ubuntu 16.04

Hur man installerar dotCMS på Ubuntu 16.04

Använder du ett annat system? DotCMS är ett open-source, företagsklassat innehållshanteringssystem skrivet i Java. Den innehåller nästan alla funktioner som krävs

Hur man installerar Pagekit 1.0 CMS på en FreeBSD 11 FAMP VPS

Hur man installerar Pagekit 1.0 CMS på en FreeBSD 11 FAMP VPS

Använder du ett annat system? Pagekit 1.0 CMS är ett vackert, modulärt, utbyggbart och lätt, gratis och öppen källkod Content Management System (CMS) med

Hur man installerar BigTree CMS på en Fedora 26 LAMP VPS

Hur man installerar BigTree CMS på en Fedora 26 LAMP VPS

Använder du ett annat system? BigTree CMS 4.2 är ett snabbt och lätt, gratis och öppen källkod, företagsklassat innehållshanteringssystem (CMS) med omfattande

Installera Pagekit CMS på Ubuntu 16.04 LTS

Installera Pagekit CMS på Ubuntu 16.04 LTS

Använder du ett annat system? Pagekit är ett CMS med öppen källkod skrivet i PHP. Pagekit-källkoden finns på GitHub. Den här guiden visar hur du installerar

Hur man installerar PyroCMS på Ubuntu 16.04

Hur man installerar PyroCMS på Ubuntu 16.04

Använder du ett annat system? PyroCMS är ett open source CMS skrivet i PHP. PyroCMS källkod finns på GitHub. I denna guide går du väl igenom hela

Hur man installerar Subrion 4.1 CMS på en FreeBSD 11 FAMP VPS

Hur man installerar Subrion 4.1 CMS på en FreeBSD 11 FAMP VPS

Använder du ett annat system? Subrion 4.1 CMS är ett kraftfullt och flexibelt innehållshanteringssystem (CMS) med öppen källkod som ger ett intuitivt och tydligt innehåll

Hur man installerar Backdrop CMS 1.8.0 på en Debian 9 LAMP VPS

Hur man installerar Backdrop CMS 1.8.0 på en Debian 9 LAMP VPS

Använder du ett annat system? Backdrop CMS 1.8.0 är ett enkelt och flexibelt, mobilvänligt, gratis och open source Content Management System (CMS) som låter oss

Hur man installerar Roadiz CMS på Debian 9

Hur man installerar Roadiz CMS på Debian 9

Använder du ett annat system? Inledning Roadiz är ett modernt CMS designat för att hantera många typer av tjänster. Baserat på Symfony-komponenter och Doctrin ORM, dvs

Installera Microweber på Debian 9

Installera Microweber på Debian 9

Använder du ett annat system? Microweber är en öppen källkod för dra och släpp CMS och onlinebutik. Microweber källkod finns på GitHub. Denna guide kommer att visa dig

Hur man installerar Grav CMS på Fedora 28

Hur man installerar Grav CMS på Fedora 28

Använder du ett annat system? Grav är ett platt-fil-CMS med öppen källkod skrivet i PHP. Grav källkod är offentligt värd på GitHub. Den här guiden visar dig hur t

Hur man installerar Grav CMS på Debian 9

Hur man installerar Grav CMS på Debian 9

Använder du ett annat system? Grav är ett platt-fil-CMS med öppen källkod skrivet i PHP. Grav källkod är offentligt värd på GitHub. Den här guiden visar dig hur t

Hur man installerar Automad CMS på CentOS 7

Hur man installerar Automad CMS på CentOS 7

Använder du ett annat system? Automad är ett filbaserat innehållshanteringssystem (CMS) och mallmotor med öppen källkod skriven i PHP. Källkoden för Automad i

Hur man installerar Raneto på Ubuntu 17.10

Hur man installerar Raneto på Ubuntu 17.10

Raneto är en gratis kunskapsbas med öppen källkod, byggd på Node.js som är enkel att installera och använda, samt lätt att administrera. Kategorier och sidor ar

Hur man installerar Thelia 2.3 på Ubuntu 16.04

Hur man installerar Thelia 2.3 på Ubuntu 16.04

Använder du ett annat system? Thelia är ett verktyg med öppen källkod för att skapa e-handelswebbplatser och hantera onlineinnehåll skrivet i PHP. Thelia källkod i

Hur man installerar oktober 1.0 CMS på en Debian 9 LAMP VPS

Hur man installerar oktober 1.0 CMS på en Debian 9 LAMP VPS

Använder du ett annat system? Oktober 1.0 CMS är ett enkelt och pålitligt, gratis och öppen källkodsinnehållshanteringssystem (CMS) byggt på Laravel-ramverket

Hur man installerar ImpressPages CMS 5.0 på en Ubuntu 16.04 LAMP VPS

Hur man installerar ImpressPages CMS 5.0 på en Ubuntu 16.04 LAMP VPS

Använder du ett annat system? ImpressPages CMS 5.0 är ett enkelt och effektivt, gratis och öppen källkod, användarvänligt, MVC-baserat Content Management System (CMS)

Hur man installerar CMS Made Simple 2.2 på en Debian 9 LAMP VPS

Hur man installerar CMS Made Simple 2.2 på en Debian 9 LAMP VPS

Använder du ett annat system? CMS Made Simple 2.2 är ett flexibelt och utbyggbart, gratis och open source Content Management System (CMS) intelligent designat för att

The Rise of Machines: Real World Applications of AI

The Rise of Machines: Real World Applications of AI

Artificiell intelligens är inte i framtiden, det är här i nuet I den här bloggen Läs hur Artificiell intelligens-applikationer har påverkat olika sektorer.

DDOS-attacker: En kort översikt

DDOS-attacker: En kort översikt

Är du också ett offer för DDOS-attacker och förvirrad över de förebyggande metoderna? Läs den här artikeln för att lösa dina frågor.

Har du någonsin undrat hur hackare tjänar pengar?

Har du någonsin undrat hur hackare tjänar pengar?

Du kanske har hört att hackare tjänar mycket pengar, men har du någonsin undrat hur de tjänar den typen av pengar? låt oss diskutera.

Revolutionerande uppfinningar från Google som gör ditt liv lätt.

Revolutionerande uppfinningar från Google som gör ditt liv lätt.

Vill du se revolutionerande uppfinningar av Google och hur dessa uppfinningar förändrade livet för varje människa idag? Läs sedan till bloggen för att se uppfinningar av Google.

Fredag ​​Essential: Vad hände med AI-drivna bilar?

Fredag ​​Essential: Vad hände med AI-drivna bilar?

Konceptet med att självkörande bilar ska ut på vägarna med hjälp av artificiell intelligens är en dröm vi har ett tag nu. Men trots flera löften finns de ingenstans att se. Läs den här bloggen för att lära dig mer...

Technological Singularity: A Distant Future of Human Civilization?

Technological Singularity: A Distant Future of Human Civilization?

När vetenskapen utvecklas i snabb takt och tar över en hel del av våra ansträngningar, ökar också riskerna för att utsätta oss för en oförklarlig singularitet. Läs, vad singularitet kan betyda för oss.

Utveckling av datalagring – Infographic

Utveckling av datalagring – Infographic

Lagringsmetoderna för data har utvecklats kan vara sedan födelsen av data. Den här bloggen tar upp utvecklingen av datalagring på basis av en infografik.

Funktioner för Big Data Reference Architecture Layers

Funktioner för Big Data Reference Architecture Layers

Läs bloggen för att känna till olika lager i Big Data Architecture och deras funktionaliteter på enklaste sätt.

6 fantastiska fördelar med att ha smarta hemenheter i våra liv

6 fantastiska fördelar med att ha smarta hemenheter i våra liv

I denna digitala värld har smarta hemenheter blivit en avgörande del av livet. Här är några fantastiska fördelar med smarta hemenheter om hur de gör vårt liv värt att leva och enklare.

macOS Catalina 10.15.4 tilläggsuppdatering orsakar fler problem än att lösa

macOS Catalina 10.15.4 tilläggsuppdatering orsakar fler problem än att lösa

Nyligen släppte Apple macOS Catalina 10.15.4, en tilläggsuppdatering för att åtgärda problem, men det verkar som om uppdateringen orsakar fler problem som leder till att mac-datorer blir murade. Läs den här artikeln för att lära dig mer