Konfigurer en Keystone.js-server ved hjælp af Nginx Reverse Proxy på Ubuntu 16.04

I denne vejledning vil vi opsætte en webserver med en omvendt proxy. Det CMS, vi vil bruge, er Keystone.js, en velkendt webapplikationsramme baseret på Express.js. Den omvendte proxy, vi vil bruge, er Nginx, som er en gratis og open source omvendt proxy, samt en HTTP-server. Den database vi skal bruge er MongoDB, en NoSQL dokumentdatabase. Dette kræver, at du har et domæne med opsætning af registreringer. Hvis du ikke har det sæt, så gå videre og få det taget hånd om, og vend tilbage til denne tutorial.

Installerer Node

Først vil vi installere Node.js, som er en Javascript-fortolker baseret på Chrome V8 Javascript-motoren.

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

Installerer Nginx

Dernæst installerer vi Nginx, vores omvendte proxy.

sudo apt update
sudo apt install nginx

Dette vil opdatere pakkelisterne og installere Nginx. Når installationen er færdig, opsætter vi vores nodeprojekt.

Initialisering af vores Keystone-projekt

Opret vores nodeprojekt. For at gøre det skal du blot oprette en ny mappe.

mkdir website

Derefter opretter vi vores package.jsonfil. For at gøre det skal du blot køre npm initi din terminal, udfylde felterne og svare " yes" for at bekræfte. Når du har oprettet package.jsonfilen, installerer vi følgende nodemoduler.

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

Når de er færdige med at downloade, skal du køre følgende.

yo keystone

Udfyld de påkrævede felter. Det vil bede dig om project name, template engine, emailfor kontrolpanel og så videre. Hvis du ikke ved, hvad du skal vælge, vil standardindstillingerne være fine. Når du har konfigureret din keystone-opsætning, kan vi teste for at se, om vores server kører, ved at skrive for node keystoneat starte din applikation. Som standard vil din applikation køre på localhost, på port 3000. Bemærk, at hvis du ikke har MongoDB installeret, vil en database ikke være tilgængelig for dig med det samme. Du kan lære, hvordan du installerer det senere i selvstudiet.

Her er det grundlæggende bibliotekslayout for Keystone.js:

  • /lib - Det er her du gemmer dine brugerdefinerede biblioteker og anden kode.

  • /models- Det er her du gemmer din applikations databasemodeller. KeystoneJS bruger MongoDB som databaseudbyder.

  • /public - Det er her dine statiske filer (CSS, JS, billeder og så videre) bliver gemt.

  • /routes/api - Det er her din applikations API-controllere bliver gemt.

  • /routes.views - Applikationsvisningscontrollere vil blive gemt her.

  • /templates - Det er her alle din applikations skabelonfiler vil blive gemt.

  • /updates - Det er her dine migreringsscripts bliver gemt.

  • package.json - Dette er din npm-konfigurationsfil, som generatoren genererede til os.

  • keystone.js - Vores primære startfil, det kører vi, når vi starter hjemmesiden op.

Initialisering af vores database

Som tidligere nævnt er vores database, som vi vil bruge, MongoDB, som er en pålidelig NoSQL, dokumentorienteret database. Hvis du allerede har MongoDB installeret, kan du springe dette afsnit over. Hvis ikke, så er her, hvordan du installerer det på Ubuntu 16.04.

Importer den offentlige nøgle, der bruges til mongoDB-pakken.

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

Opret listefilen, der bruges til at installere pakken.

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

Opdater dine pakkelister ved hjælp af apt.

sudo apt update

Til sidst skal du installere MongoDB.

sudo apt install mongodb-org -y

Når denne installation er afsluttet, start MongoDB.

sudo service mongod start

Dette vil starte MongoDB-processen på port 27017.

MongoDB vil blive brugt i hele applikationen, og det vil blive brugt til at gemme information, som vi bruger til vores modeller, for eksempel en Usermodel. Keystone bruger det som sin foretrukne database, og på nuværende tidspunkt kan du ikke bruge andre databaseleverandører.

Installation af PM2

Nu er det tid til at installere PM2 (Process Manager 2.) PM2 er en procesmanager for Node.js applikationer, i form af et npm modul. Det giver dig en nem måde at administrere dine applikationer og køre dem i baggrunden. Fordi det er i NPM, er alt, hvad vi skal gøre for at installere det, at køre følgende.

sudo npm install pm2 -g

Dette fortæller npm at installere det globalt, så vi kan bruge det overalt i vores system.

Kørsel/administration af en applikation på PM2

Tidligere kørte vi vores webapplikation med node keystone. Med PM2 er det lidt anderledes. Vi kører nu vores node-app med følgende.

pm2 start keystone.js

Dette vil tilføje vores PM2-applikation til vores procesliste, og en lille boks vil blive vist, så du kan se, at den faktisk er online. Læg mærke til boksen, der er mærket idtil din proces. Hold dette tæt, da vi vil komme med mange referencer til dette senere.

For at se logfilerne for din ansøgning.

pm2 logs [id]

For eksempel, pm2 logs 0hvis dette er din første PM2-applikation.

For at stoppe din webapplikation til enhver tid.

pm2 stop [id]

For at slette din ansøgning fuldstændigt.

pm2 delete [id]

PM2 har endda et overvågningsdashboard, hvis du vil se nogle grundlæggende statistikker for din applikation, og du kan få adgang til det med dette.

pm2 monit

Dette vil vise nogle grundlæggende oplysninger såsom RAM-brug, CPU-brug og oppetid.

En fantastisk funktion, som PM2 tilbyder, er watching. I bund og grund er at se, når PM2 automatisk registrerer ændringer til nogen af ​​filerne i samme mappe som din startfil, og den vil automatisk genstarte din applikation. For at aktivere den skal du blot genstarte din applikation, men sende den et urflag.

pm2 restart [id] --watch

For at deaktivere visning, efter at den er blevet aktiveret, skal du blot køre den samme kommando igen, og visning vil blive deaktiveret.

I denne tutorial vil vi lade være med at holde øje.

Opsætning af din omvendte proxy

Sørg for, at du har Nginx installeret. Hvis det af en eller anden grund ikke er det, skal du henvise til ovenstående trin.

Juster dine firewallindstillinger. På Ubuntu ufwer den officielle firewall. Som standard er forbindelser blokeret på port 80. Vi skal tilføje en undtagelse for Nginx på port 80, som vores webapplikation vil køre på.

sudo ufw allow 'Nginx HTTP'

Bekræft, at din Nginx-server kører.

systemctl status nginx

Under Activesektionen, hvis du ser active (running), så er du klar. Hvis ikke, kan du prøve at genstarte tjenesten.

systemctl restart nginx

Slet standard Nginx-konfigurationsfilen.

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

Opret en ny, og kald den bare node.

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

Indsæt følgende i filen, og erstat example.commed dit webstedsdomæne.

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

Bemærk, at den proxy_passangiver den IP, vores Keystone-app kører på lokalt, som er localhostpå port 3000. listen 80er den port, vi ønsker, at appen skal dirigeres til, hvilket i dette tilfælde er port 80.

Derefter skal vi oprette et symbolsk link eller symbolsk link til en mappe kaldet sites-enabled. Forskellen mellem sites-enabledog sites-availableer, at sites-enableddet faktisk er indlæst af Nginx.

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

Nu vil din konfigurationsfil sites-availablevære klar til brug, og den vil blive indlæst fra sites-enabled. For at anvende konfigurationen, så den træder i kraft, skal du blot genstarte Nginx.

sudo systemctl restart nginx

Til sidst skal du genstarte din PM2-applikation

pm2 restart [id]

Nu kan du navigere til dit domæne i en browser, og du vil se en Welcome to Keystoneskærm med et panel, hvor du kan logge ind.

Hvis du ser det, har du med succes opsat en Node.js-produktionswebserver. Hvis ikke, så har du måske gjort et trin forkert, og du vil måske gå tilbage og følge hvert trin omhyggeligt.

Du kan lære mere om Nginx ved at besøge deres hjemmeside .

Jeg håber, du nød denne tutorial, og jeg håber, at dette har hjulpet dig med at opsætte din egen webserver til produktion på din Vultr VPS.


Sådan installeres Thelia 2.3 på Debian 9

Sådan installeres Thelia 2.3 på Debian 9

Bruger du et andet system? Thelia er et open source-værktøj til at skabe e-business-websteder og administrere onlineindhold skrevet i PHP. Thelia kildekode i

Sådan installeres Microweber på CentOS 7

Sådan installeres Microweber på CentOS 7

Bruger du et andet system? Microweber er en open source træk og slip CMS og online shop. Microweber-kildekoden er hostet på GitHub. Denne guide vil vise dig

Installation af Microweber på Ubuntu 16.04

Installation af Microweber på Ubuntu 16.04

Bruger du et andet system? Microweber er en open source træk og slip CMS og online shop. Microweber-kildekoden er hostet på GitHub. Denne guide vil vise dig

Sådan installeres dotCMS på Ubuntu 16.04

Sådan installeres dotCMS på Ubuntu 16.04

Bruger du et andet system? DotCMS er et open source, enterprise-grade content management system skrevet i Java. Den indeholder næsten alle nødvendige funktioner

Sådan installeres Pagekit 1.0 CMS på en FreeBSD 11 FAMP VPS

Sådan installeres Pagekit 1.0 CMS på en FreeBSD 11 FAMP VPS

Bruger du et andet system? Pagekit 1.0 CMS er et smukt, modulært, udvideligt og let, gratis og open source Content Management System (CMS) med

Sådan installeres BigTree CMS på en Fedora 26 LAMP VPS

Sådan installeres BigTree CMS på en Fedora 26 LAMP VPS

Bruger du et andet system? BigTree CMS 4.2 er et hurtigt og let, gratis og open source, enterprise-grade content management system (CMS) med omfattende

Installation af Pagekit CMS på Ubuntu 16.04 LTS

Installation af Pagekit CMS på Ubuntu 16.04 LTS

Bruger du et andet system? Pagekit er et open source CMS skrevet i PHP. Pagekit-kildekoden er hostet på GitHub. Denne vejledning viser dig, hvordan du installerer

Sådan installeres PyroCMS på Ubuntu 16.04

Sådan installeres PyroCMS på Ubuntu 16.04

Bruger du et andet system? PyroCMS er et open source CMS skrevet i PHP. PyroCMS-kildekoden er hostet på GitHub. I denne guide går du godt igennem det hele

Sådan installeres Subrion 4.1 CMS på en FreeBSD 11 FAMP VPS

Sådan installeres Subrion 4.1 CMS på en FreeBSD 11 FAMP VPS

Bruger du et andet system? Subrion 4.1 CMS er et kraftfuldt og fleksibelt open source Content Management System (CMS), der bringer et intuitivt og klart indhold

Sådan installeres Backdrop CMS 1.8.0 på en Debian 9 LAMP VPS

Sådan installeres Backdrop CMS 1.8.0 på en Debian 9 LAMP VPS

Bruger du et andet system? Backdrop CMS 1.8.0 er et enkelt og fleksibelt, mobilvenligt, gratis og open source Content Management System (CMS), der giver os mulighed for

Sådan installeres Roadiz CMS på Debian 9

Sådan installeres Roadiz CMS på Debian 9

Bruger du et andet system? Introduktion Roadiz er et moderne CMS designet til at håndtere mange typer tjenester. Baseret på Symfony-komponenter og Doctrin ORM, dvs

Installation af Microweber på Debian 9

Installation af Microweber på Debian 9

Bruger du et andet system? Microweber er en open source træk og slip CMS og online shop. Microweber-kildekoden er hostet på GitHub. Denne guide vil vise dig

Sådan installeres Grav CMS på Fedora 28

Sådan installeres Grav CMS på Fedora 28

Bruger du et andet system? Grav er et open source flad-fil CMS skrevet i PHP. Grav kildekode er offentligt hostet på GitHub. Denne vejledning viser dig, hvordan t

Sådan installeres Grav CMS på Debian 9

Sådan installeres Grav CMS på Debian 9

Bruger du et andet system? Grav er et open source flad-fil CMS skrevet i PHP. Grav kildekode er offentligt hostet på GitHub. Denne vejledning viser dig, hvordan t

Sådan installeres Automad CMS på CentOS 7

Sådan installeres Automad CMS på CentOS 7

Bruger du et andet system? Automad er et open source filbaseret indholdsstyringssystem (CMS) og skabelonmotor skrevet i PHP. Automad-kildekoden i

Sådan installeres Raneto på Ubuntu 17.10

Sådan installeres Raneto på Ubuntu 17.10

Raneto er en gratis og open source vidensbase, bygget på Node.js, der er nem at konfigurere og bruge, samt nem at administrere. Kategorier og sider ar

Sådan installeres Thelia 2.3 på Ubuntu 16.04

Sådan installeres Thelia 2.3 på Ubuntu 16.04

Bruger du et andet system? Thelia er et open source-værktøj til at skabe e-business-websteder og administrere onlineindhold skrevet i PHP. Thelia kildekode i

Sådan installeres oktober 1.0 CMS på en Debian 9 LAMP VPS

Sådan installeres oktober 1.0 CMS på en Debian 9 LAMP VPS

Bruger du et andet system? Oktober 1.0 CMS er et enkelt og pålideligt, gratis og open source Content Management System (CMS) bygget på Laravel-rammeværket

Sådan installeres ImpressPages CMS 5.0 på en Ubuntu 16.04 LAMPE VPS

Sådan installeres ImpressPages CMS 5.0 på en Ubuntu 16.04 LAMPE VPS

Bruger du et andet system? ImpressPages CMS 5.0 er et enkelt og effektivt, gratis og open source, brugervenligt, MVC-baseret Content Management System (CMS)

Sådan installeres CMS Made Simple 2.2 på en Debian 9 LAMP VPS

Sådan installeres CMS Made Simple 2.2 på en Debian 9 LAMP VPS

Bruger du et andet system? CMS Made Simple 2.2 er et fleksibelt og udvidelsesvenligt, gratis og open source Content Management System (CMS) intelligent designet til at b.

The Rise of Machines: Real World Applications of AI

The Rise of Machines: Real World Applications of AI

Kunstig intelligens er ikke i fremtiden, det er her lige i nuet I denne blog Læs, hvordan kunstig intelligens-applikationer har påvirket forskellige sektorer.

DDOS-angreb: et kort overblik

DDOS-angreb: et kort overblik

Er du også et offer for DDOS-angreb og forvirret over forebyggelsesmetoderne? Læs denne artikel for at løse dine spørgsmål.

Har du nogensinde spekuleret på, hvordan tjener hackere penge?

Har du nogensinde spekuleret på, hvordan tjener hackere penge?

Du har måske hørt, at hackere tjener mange penge, men har du nogensinde spekuleret på, hvordan tjener de den slags penge? lad os diskutere.

Revolutionære opfindelser fra Google, der vil gøre dit liv lettere.

Revolutionære opfindelser fra Google, der vil gøre dit liv lettere.

Vil du se revolutionerende opfindelser fra Google, og hvordan disse opfindelser ændrede livet for ethvert menneske i dag? Læs derefter til bloggen for at se opfindelser fra Google.

Fredag ​​Essential: Hvad skete der med AI-drevne biler?

Fredag ​​Essential: Hvad skete der med AI-drevne biler?

Konceptet med selvkørende biler til at køre på vejene ved hjælp af kunstig intelligens er en drøm, vi har haft i et stykke tid nu. Men på trods af flere løfter er de ingen steder at se. Læs denne blog for at lære mere...

Teknologisk singularitet: En fjern fremtid for menneskelig civilisation?

Teknologisk singularitet: En fjern fremtid for menneskelig civilisation?

Efterhånden som videnskaben udvikler sig i et hurtigt tempo og overtager en stor del af vores indsats, stiger risikoen for at udsætte os selv for en uforklarlig Singularitet. Læs, hvad singularitet kunne betyde for os.

Udvikling af datalagring – Infografik

Udvikling af datalagring – Infografik

Opbevaringsmetoderne for dataene har været under udvikling, kan være siden fødslen af ​​dataene. Denne blog dækker udviklingen af ​​datalagring på basis af en infografik.

Funktioner af Big Data Reference Architecture Layers

Funktioner af Big Data Reference Architecture Layers

Læs bloggen for at kende forskellige lag i Big Data-arkitekturen og deres funktionaliteter på den enkleste måde.

6 fantastiske fordele ved at have smarte hjemmeenheder i vores liv

6 fantastiske fordele ved at have smarte hjemmeenheder i vores liv

I denne digitalt drevne verden er smarte hjemmeenheder blevet en afgørende del af livet. Her er et par fantastiske fordele ved smarte hjemmeenheder om, hvordan de gør vores liv værd at leve og enklere.

macOS Catalina 10.15.4-tillægsopdatering forårsager flere problemer end at løse

macOS Catalina 10.15.4-tillægsopdatering forårsager flere problemer end at løse

For nylig udgav Apple macOS Catalina 10.15.4 en supplerende opdatering for at løse problemer, men det ser ud til, at opdateringen forårsager flere problemer, hvilket fører til mursten af ​​mac-maskiner. Læs denne artikel for at lære mere