Sett opp en Keystone.js-server ved å bruke Nginx Reverse Proxy på Ubuntu 16.04

I denne opplæringen skal vi sette opp en webserver med en omvendt proxy. CMS vi skal bruke er Keystone.js, et velkjent nettapplikasjonsrammeverk basert på Express.js. Den omvendte proxyen vi skal bruke er Nginx, som er en gratis og åpen kildekode omvendt proxy, samt en HTTP-server. Databasen vi skal bruke er MongoDB, en NoSQL dokumentdatabase. Dette krever at du har et domene med oppføringer satt opp. Hvis du ikke har det settet, så fortsett og ta vare på det, og kom tilbake til denne opplæringen.

Installerer Node

Først skal vi installere Node.js, som er en Javascript-tolk basert 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

Deretter vil vi installere Nginx, vår omvendte proxy.

sudo apt update
sudo apt install nginx

Dette vil oppdatere pakkelistene og installere Nginx. Når installasjonen er ferdig, vil vi sette opp nodeprosjektet vårt.

Initialiserer Keystone-prosjektet vårt

Lag vårt nodeprosjekt. For å gjøre det, bare opprette en ny mappe.

mkdir website

Deretter lager vi package.jsonfilen vår . For å gjøre det, kjør npm initi terminalen din, fyll ut feltene og svar " yes" for å bekrefte. Når du har opprettet package.jsonfilen, vil vi installere følgende nodemoduler.

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

Når de er ferdig nedlastet, kjør følgende.

yo keystone

Fyll ut de obligatoriske feltene. Den vil be deg om project name, template engine, emailfor kontrollpanel og så videre. Hvis du ikke vet hva du skal velge, vil standardinnstillingene være fine. Etter at du har konfigurert keystone-oppsettet, kan vi teste for å se om serveren vår kjører ved å skrive for node keystoneå starte applikasjonen. Som standard vil applikasjonen din kjøre på localhost, på port 3000. Merk at hvis du ikke har MongoDB installert, vil ikke en database være tilgjengelig for deg med en gang. Du kan lære hvordan du installerer det senere i veiledningen.

Her er det grunnleggende katalogoppsettet for Keystone.js:

  • /lib - Det er her du vil lagre dine egendefinerte biblioteker og annen kode.

  • /models- Det er her du vil lagre applikasjonens databasemodeller. KeystoneJS bruker MongoDB som databaseleverandør.

  • /public - Det er her dine statiske filer (CSS, JS, bilder og så videre) vil bli lagret.

  • /routes/api - Det er her applikasjonens API-kontrollere vil bli lagret.

  • /routes.views - Applikasjonsvisningskontrollere vil bli lagret her.

  • /templates - Det er her alle applikasjonens malfiler vil bli lagret.

  • /updates - Det er her migreringsskriptene dine vil bli lagret.

  • package.json – Dette er npm-konfigurasjonsfilen din som generatoren genererte for oss.

  • keystone.js – Vår hovedstartfil, denne kjører vi når vi starter opp nettsiden.

Initialiserer databasen vår

Som nevnt tidligere, er databasen vår som vi skal bruke MongoDB, som er en pålitelig NoSQL, dokumentorientert database. Hvis du allerede har MongoDB installert, kan du hoppe over denne delen. Hvis ikke, så her er hvordan du installerer det på Ubuntu 16.04.

Importer den offentlige nøkkelen som brukes for mongoDB-pakken.

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

Opprett listefilen som brukes til å 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

Oppdater pakkelistene dine med apt.

sudo apt update

Til slutt, installer MongoDB.

sudo apt install mongodb-org -y

Når denne installasjonen er fullført, start MongoDB.

sudo service mongod start

Dette vil starte MongoDB-prosessen på port 27017.

MongoDB vil bli brukt i hele applikasjonen, og den vil bli brukt til å lagre informasjon som vi bruker for våre modeller, for eksempel en Usermodell. Keystone bruker den som den valgte databasen, og på dette tidspunktet kan du ikke bruke andre databaseleverandører.

Installerer PM2

Nå er det på tide å installere PM2 (Process Manager 2.) PM2 er en prosessbehandler for Node.js-applikasjoner, i form av en npm-modul. Det gir deg en enkel måte å administrere applikasjonene dine på og kjøre dem i bakgrunnen. Fordi det er i NPM, er alt vi trenger å gjøre for å installere det å kjøre følgende.

sudo npm install pm2 -g

Dette forteller npm å installere det globalt, slik at vi kan bruke det hvor som helst i systemet vårt.

Kjøre/administrere en applikasjon på PM2

Tidligere kjørte vi nettapplikasjonen vår med node keystone. Med PM2 er det litt annerledes. Vi kjører nå nodeappen vår med følgende.

pm2 start keystone.js

Dette vil legge til PM2-applikasjonen vår til prosesslisten vår, og en liten boks vil vises slik at du kan se at den faktisk er online. Legg merke til boksen som er merket idfor prosessen din. Hold dette nært, siden vi kommer til å gjøre mange referanser til dette senere.

For å se loggene for applikasjonen din.

pm2 logs [id]

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

For å stoppe nettapplikasjonen din når som helst.

pm2 stop [id]

For å fullstendig slette applikasjonen din.

pm2 delete [id]

PM2 har til og med et overvåkingsdashbord hvis du vil se noen grunnleggende statistikker for applikasjonen din, og du kan få tilgang til den med dette.

pm2 monit

Dette vil vise litt grunnleggende informasjon som RAM-bruk, CPU-bruk og oppetid.

En flott funksjon som PM2 tilbyr er watching. I hovedsak er å se når PM2 automatisk oppdager endringer i noen av filene i samme katalog som startfilen din, og den vil automatisk starte programmet på nytt. For å aktivere det, start ganske enkelt applikasjonen på nytt, men send den et klokkeflagg.

pm2 restart [id] --watch

For å deaktivere visning etter at den har blitt aktivert, kjør den samme kommandoen på nytt, og visning vil bli deaktivert.

I denne opplæringen slutter vi å se på.

Sette opp din omvendte proxy

Sørg for at du har Nginx installert. Hvis det av en eller annen grunn ikke er det, referer til trinnene ovenfor.

Juster brannmurinnstillingene. På Ubuntu ufwer den offisielle brannmuren. Som standard er tilkoblinger blokkert på port 80. Vi må legge til et unntak for Nginx på port 80, som webapplikasjonen vår skal kjøre på.

sudo ufw allow 'Nginx HTTP'

Bekreft at Nginx-serveren din kjører.

systemctl status nginx

Under Activedelen, hvis du ser active (running), er du klar. Hvis ikke, kan du prøve å starte tjenesten på nytt.

systemctl restart nginx

Slett standard Nginx-konfigurasjonsfilen.

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

Opprett en ny, og bare kall den node.

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

Lim inn følgende i filen, og erstatt example.commed nettstedets domene.

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

Merk at den proxy_passangir IP-en vår Keystone-appen kjører på lokalt, som er localhostpå port 3000. listen 80er porten vi vil at appen skal dirigeres til, som i dette tilfellet er port 80.

Deretter må vi lage en symbolkobling, eller symbolsk lenke til en mappe kalt sites-enabled. Forskjellen mellom sites-enabledog sites-availableer at sites-enableddet faktisk lastes inn av Nginx.

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

Nå vil konfigurasjonsfilen din sites-availablevære klar til bruk, og den vil bli lastet fra sites-enabled. For å bruke konfigurasjonen slik at den trer i kraft, start Nginx på nytt.

sudo systemctl restart nginx

Til slutt starter du PM2-applikasjonen på nytt

pm2 restart [id]

Nå kan du navigere til domenet ditt i en nettleser, og du vil se en Welcome to Keystoneskjerm med et panel du kan logge på.

Hvis du ser det, har du satt opp en Node.js-produksjonswebserver. Hvis ikke, kan det hende du har gjort et trinn feil, og det kan være lurt å gå tilbake og følge hvert trinn nøye.

Du kan lære mer om Nginx ved å besøke nettsiden deres .

Jeg håper du likte denne opplæringen, og jeg håper dette har hjulpet deg med å sette opp din egen webserver for produksjon på din Vultr VPS.


Hvordan installere Thelia 2.3 på Debian 9

Hvordan installere Thelia 2.3 på Debian 9

Bruker du et annet system? Thelia er et åpen kildekodeverktøy for å lage e-business-nettsteder og administrere nettinnhold skrevet i PHP. Thelia kildekode i

Slik installerer du Microweber på CentOS 7

Slik installerer du Microweber på CentOS 7

Bruker du et annet system? Microweber er en åpen kildekode dra og slipp CMS og nettbutikk. Microweber-kildekoden er vert på GitHub. Denne guiden vil vise deg

Installere Microweber på Ubuntu 16.04

Installere Microweber på Ubuntu 16.04

Bruker du et annet system? Microweber er en åpen kildekode dra og slipp CMS og nettbutikk. Microweber-kildekoden er vert på GitHub. Denne guiden vil vise deg

Hvordan installere dotCMS på Ubuntu 16.04

Hvordan installere dotCMS på Ubuntu 16.04

Bruker du et annet system? DotCMS er et åpen kildekode, enterprise-grade innholdsstyringssystem skrevet i Java. Den inneholder nesten alle nødvendige funksjoner

Hvordan installere Pagekit 1.0 CMS på en FreeBSD 11 FAMP VPS

Hvordan installere Pagekit 1.0 CMS på en FreeBSD 11 FAMP VPS

Bruker du et annet system? Pagekit 1.0 CMS er et vakkert, modulært, utvidbart og lett, gratis og åpen kildekode Content Management System (CMS) med

Hvordan installere BigTree CMS på en Fedora 26 LAMP VPS

Hvordan installere BigTree CMS på en Fedora 26 LAMP VPS

Bruker du et annet system? BigTree CMS 4.2 er et raskt og lett, gratis og åpen kildekode, enterprise-grade content management system (CMS) med omfattende

Installere Pagekit CMS på Ubuntu 16.04 LTS

Installere Pagekit CMS på Ubuntu 16.04 LTS

Bruker du et annet system? Pagekit er et åpen kildekode CMS skrevet i PHP. Pagekit-kildekoden er vert på GitHub. Denne veiledningen viser deg hvordan du installerer

Hvordan installere PyroCMS på Ubuntu 16.04

Hvordan installere PyroCMS på Ubuntu 16.04

Bruker du et annet system? PyroCMS er et åpen kildekode CMS skrevet i PHP. PyroCMS-kildekoden er vert på GitHub. I denne guiden går du godt gjennom hele

Hvordan installere Subrion 4.1 CMS på en FreeBSD 11 FAMP VPS

Hvordan installere Subrion 4.1 CMS på en FreeBSD 11 FAMP VPS

Bruker du et annet system? Subrion 4.1 CMS er et kraftig og fleksibelt innholdsstyringssystem (CMS) med åpen kildekode som gir et intuitivt og tydelig innhold

Hvordan installere Backdrop CMS 1.8.0 på en Debian 9 LAMP VPS

Hvordan installere Backdrop CMS 1.8.0 på en Debian 9 LAMP VPS

Bruker du et annet system? Backdrop CMS 1.8.0 er et enkelt og fleksibelt, mobilvennlig, gratis og åpen kildekode Content Management System (CMS) som lar oss

Hvordan installere Roadiz CMS på Debian 9

Hvordan installere Roadiz CMS på Debian 9

Bruker du et annet system? Introduksjon Roadiz er et moderne CMS designet for å håndtere mange typer tjenester. Basert på Symfony-komponenter og Doctrine ORM, dvs

Installere Microweber på Debian 9

Installere Microweber på Debian 9

Bruker du et annet system? Microweber er en åpen kildekode dra og slipp CMS og nettbutikk. Microweber-kildekoden er vert på GitHub. Denne guiden vil vise deg

Hvordan installere Grav CMS på Fedora 28

Hvordan installere Grav CMS på Fedora 28

Bruker du et annet system? Grav er et åpen kildekode flat-fil CMS skrevet i PHP. Grav kildekode er offentlig vert på GitHub. Denne guiden viser deg hvordan t

Hvordan installere Grav CMS på Debian 9

Hvordan installere Grav CMS på Debian 9

Bruker du et annet system? Grav er et åpen kildekode flat-fil CMS skrevet i PHP. Grav kildekode er offentlig vert på GitHub. Denne guiden viser deg hvordan t

Hvordan installere Automad CMS på CentOS 7

Hvordan installere Automad CMS på CentOS 7

Bruker du et annet system? Automad er et åpen kildekode-filbasert innholdsstyringssystem (CMS) og malmotor skrevet i PHP. Automad-kildekoden i

Hvordan installere Raneto på Ubuntu 17.10

Hvordan installere Raneto på Ubuntu 17.10

Raneto er en gratis og åpen kildekode kunnskapsbase, bygget på Node.js som er enkel å sette opp og bruke, samt enkel å administrere. Kategorier og sider ar

Hvordan installere Thelia 2.3 på Ubuntu 16.04

Hvordan installere Thelia 2.3 på Ubuntu 16.04

Bruker du et annet system? Thelia er et åpen kildekodeverktøy for å lage e-business-nettsteder og administrere nettinnhold skrevet i PHP. Thelia kildekode i

Hvordan installere oktober 1.0 CMS på en Debian 9 LAMP VPS

Hvordan installere oktober 1.0 CMS på en Debian 9 LAMP VPS

Bruker du et annet system? Oktober 1.0 CMS er et enkelt og pålitelig, gratis og åpen kildekode Content Management System (CMS) bygget på Laravel-rammeverket

Hvordan installere ImpressPages CMS 5.0 på en Ubuntu 16.04 LAMP VPS

Hvordan installere ImpressPages CMS 5.0 på en Ubuntu 16.04 LAMP VPS

Bruker du et annet system? ImpressPages CMS 5.0 er et enkelt og effektivt, gratis og åpen kildekode, brukervennlig, MVC-basert Content Management System (CMS)

Hvordan installere CMS Made Simple 2.2 på en Debian 9 LAMP VPS

Hvordan installere CMS Made Simple 2.2 på en Debian 9 LAMP VPS

Bruker du et annet system? CMS Made Simple 2.2 er et fleksibelt og utvidbart, gratis og åpen kildekode Content Management System (CMS) intelligent designet for å

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 akkurat i nåtiden I denne bloggen Les hvordan kunstig intelligens-applikasjoner har påvirket ulike sektorer.

DDOS-angrep: en kort oversikt

DDOS-angrep: en kort oversikt

Er du også et offer for DDOS-angrep og forvirret over forebyggingsmetodene? Les denne artikkelen for å løse spørsmålene dine.

Har du noen gang lurt på hvordan hackere tjener penger?

Har du noen gang lurt på hvordan hackere tjener penger?

Du har kanskje hørt at hackere tjener mye penger, men har du noen gang lurt på hvordan tjener de den slags penger? la oss diskutere.

Revolusjonerende oppfinnelser fra Google som vil gjøre livet ditt enkelt.

Revolusjonerende oppfinnelser fra Google som vil gjøre livet ditt enkelt.

Vil du se revolusjonerende oppfinnelser fra Google og hvordan disse oppfinnelsene forandret livet til alle mennesker i dag? Les deretter til bloggen for å se oppfinnelser fra Google.

Fredag ​​Essential: Hva skjedde med AI-drevne biler?

Fredag ​​Essential: Hva skjedde med AI-drevne biler?

Konseptet med selvkjørende biler som skal ut på veiene ved hjelp av kunstig intelligens er en drøm vi har hatt en stund nå. Men til tross for flere løfter, er de ingen steder å se. Les denne bloggen for å lære mer...

Teknologisk singularitet: en fjern fremtid for menneskelig sivilisasjon?

Teknologisk singularitet: en fjern fremtid for menneskelig sivilisasjon?

Ettersom vitenskapen utvikler seg raskt og tar over mye av innsatsen vår, øker også risikoen for å utsette oss for en uforklarlig singularitet. Les hva singularitet kan bety for oss.

Evolusjon av datalagring – infografikk

Evolusjon av datalagring – infografikk

Lagringsmetodene for dataene har vært i utvikling kan være siden fødselen av dataene. Denne bloggen dekker utviklingen av datalagring på grunnlag av en infografikk.

Funksjonaliteter til Big Data Reference Architecture Layers

Funksjonaliteter til Big Data Reference Architecture Layers

Les bloggen for å kjenne ulike lag i Big Data Architecture og deres funksjoner på den enkleste måten.

6 fantastiske fordeler ved å ha smarte hjemmeenheter i livene våre

6 fantastiske fordeler ved å ha smarte hjemmeenheter i livene våre

I denne digitaldrevne verden har smarthusenheter blitt en avgjørende del av livet. Her er noen fantastiske fordeler med smarthusenheter om hvordan de gjør livet vårt verdt å leve og enklere.

macOS Catalina 10.15.4 tilleggsoppdatering forårsaker flere problemer enn å løse

macOS Catalina 10.15.4 tilleggsoppdatering forårsaker flere problemer enn å løse

Nylig lanserte Apple macOS Catalina 10.15.4 en tilleggsoppdatering for å fikse problemer, men det ser ut til at oppdateringen forårsaker flere problemer som fører til muring av mac-maskiner. Les denne artikkelen for å lære mer