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.

Legg igjen en kommentar

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.

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.

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.

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