Configurați un server Keystone.js folosind Nginx Reverse Proxy pe Ubuntu 16.04

În acest tutorial, vom configura un server web cu un proxy invers. CMS pe care îl vom folosi este Keystone.js, un cadru de aplicații web bine cunoscut bazat pe Express.js. Proxy invers pe care îl vom folosi este Nginx, care este un proxy invers liber și open-source, precum și un server HTTP. Baza de date pe care o vom folosi este MongoDB, o bază de date de documente NoSQL. Acest lucru va necesita să aveți un domeniu cu înregistrări configurate. Dacă nu aveți setul respectiv, mergeți mai departe și aveți grijă și reveniți la acest tutorial.

Instalarea nodului

În primul rând, vom instala Node.js, care este un interpret Javascript bazat pe motorul Chrome V8 Javascript.

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

Instalarea Nginx

În continuare, vom instala Nginx, proxy-ul nostru invers.

sudo apt update
sudo apt install nginx

Aceasta va actualiza listele de pachete și va instala Nginx. După terminarea instalării, vom configura proiectul nostru de nod.

Inițializarea proiectului Keystone

Creați proiectul nostru de nod. Pentru a face asta, pur și simplu creați un folder nou.

mkdir website

Apoi, vom crea package.jsonfișierul nostru . Pentru aceasta, pur și simplu rulează npm initîn terminalul dvs., completați câmpurile și răspundeți yespentru a confirma. După ce ați creat package.jsonfișierul, atunci vom instala următoarele module nod.

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

După terminarea descărcării, executați următoarele.

yo keystone

Completați câmpurile obligatorii. Acesta vă va cere project name, template engine, emailpentru panoul de control, și așa mai departe. Dacă nu știți ce să selectați, atunci valorile implicite vor fi bine. După ce ați configurat configurația dvs. cheie de cheie, putem testa dacă serverul nostru rulează tastând node keystonepentru a porni aplicația. În mod implicit, aplicația dvs. va fi pornită localhostpe port 3000. Rețineți că, dacă nu aveți instalat MongoDB, o bază de date nu vă va fi disponibilă imediat. Puteți afla cum să îl instalați mai târziu în tutorial.

Iată aspectul directorului de bază pentru Keystone.js:

  • /lib - Aici veți stoca bibliotecile personalizate și alte coduri.

  • /models- Aici veți stoca modelele bazei de date a aplicației dvs. KeystoneJS folosește MongoDB ca furnizor de baze de date.

  • /public - Aici vor fi stocate fișierele dvs. statice (CSS, JS, imagini etc.).

  • /routes/api - Aici vor fi stocate controlerele API ale aplicației dvs.

  • /routes.views - Controlerele de vizualizare ale aplicațiilor vor fi stocate aici.

  • /templates - Aici vor fi stocate toate fișierele de șabloane ale aplicației.

  • /updates - Aici vor fi stocate scripturile de migrare.

  • package.json - Acesta este fișierul dvs. de configurare npm pe care generatorul l-a generat pentru noi.

  • keystone.js - Fișierul nostru principal de pornire, îl executăm atunci când pornim site-ul.

Inițializarea bazei noastre de date

Așa cum am menționat anterior, baza noastră de date pe care o vom folosi este MongoDB, care este o bază de date fiabilă NoSQL, bazată pe documente. Dacă aveți deja instalat MongoDB, puteți săriți această secțiune. Dacă nu, atunci iată cum se instalează pe Ubuntu 16.04.

Importați cheia publică folosită pentru pachetul mongoDB.

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

Creați fișierul de listă utilizat pentru instalarea pachetului.

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

Actualizați listele de pachete utilizând apt.

sudo apt update

În cele din urmă, instalați MongoDB.

sudo apt install mongodb-org -y

După terminarea acestei instalări, porniți MongoDB.

sudo service mongod start

Aceasta va începe procesul MongoDB pe port 27017.

MongoDB va fi utilizat în întreaga aplicație și va fi utilizat pentru a stoca informațiile pe care le folosim pentru modelele noastre, de exemplu un Usermodel. Keystone îl folosește ca bază de date la alegere, iar în acest moment nu puteți utiliza alți furnizori de baze de date.

Instalarea PM2

Acum este timpul să instalați PM2 (Process Manager 2.) PM2 este un manager de proces pentru aplicațiile Node.js, sub forma unui modul npm. Oferă o modalitate ușoară pentru a gestiona aplicațiile și a le rula în fundal. Deoarece este în NPM, tot ce trebuie să facem pentru a o instala este rulat după cum urmează.

sudo npm install pm2 -g

Acest lucru spune npm să-l instaleze la nivel global, astfel încât să-l putem folosi oriunde în sistemul nostru.

Rularea / gestionarea unei aplicații pe PM2

Mai devreme, am rulat aplicația noastră web cu node keystone. Cu PM2, este un pic diferit. Acum rulăm aplicația de nod cu următoarele.

pm2 start keystone.js

Aceasta va adăuga aplicația noastră PM2 la lista proceselor noastre și va fi afișată o casetă mică, astfel încât să puteți vedea că într-adevăr este online. Observați căsuța etichetată idpentru procesul dvs. Continuați acest lucru, deoarece vom face mai multe referințe la acest lucru ulterior.

Pentru a vedea jurnalele pentru aplicația dvs.

pm2 logs [id]

De exemplu, pm2 logs 0dacă aceasta este prima dvs. aplicație PM2.

Pentru a opri aplicația web în orice moment.

pm2 stop [id]

Pentru a șterge complet aplicația.

pm2 delete [id]

PM2 are chiar un tablou de bord de monitorizare dacă doriți să vedeți câteva statistici de bază pentru aplicația dvs., și puteți accesa cu aceasta.

pm2 monit

Aceasta va arăta câteva informații de bază, cum ar fi utilizarea RAM, utilizarea procesorului și timpul de funcționare.

O caracteristică excelentă pe care o oferă PM2 este watching. În esență, urmărirea este momentul în care PM2 detectează automat modificări la oricare dintre fișierele din același director cu fișierul de pornire și va reporni automat aplicația. Pentru a o activa, pur și simplu reporniți aplicația, dar transmiteți-o un steag de veghe.

pm2 restart [id] --watch

Pentru a dezactiva vizionarea după ce a fost activată, pur și simplu executați din nou aceeași comandă și urmărirea va fi dezactivată.

În acest tutorial, vom lăsa vizionarea.

Configurarea proxy-ului invers

Asigurați-vă că aveți instalat Nginx. Dacă nu este cazul, consultați pașii de mai sus.

Reglați setările firewallului. Pe Ubuntu, ufwse află firewall-ul oficial. În mod implicit, conexiunile sunt blocate în port 80. Trebuie să adăugăm o excepție pentru Nginx în port 80, pe care aplicația noastră web va fi rulată.

sudo ufw allow 'Nginx HTTP'

Verificați dacă serverul dvs. Nginx funcționează.

systemctl status nginx

În Activesecțiune, dacă vedeți active (running), atunci sunteți toate setate. Dacă nu, puteți încerca să reporniți serviciul.

systemctl restart nginx

Ștergeți fișierul de configurare implicit Nginx.

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

Creați unul nou și apelați pur și simplu node.

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

Lipiți următoarele în fișier și înlocuiți example.comcu domeniul site-ului dvs.

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

Rețineți că proxy_passIP-ul nostru aplicația Keystone rulează local, care este localhostpe port 3000. listen 80este portul spre care dorim să fie direcționată aplicația, care în acest caz este port 80.

Apoi, trebuie să creăm un simbol, sau o legătură simbolică către un folder numit sites-enabled. Diferența dintre sites-enabledși sites-availableeste că sites-enabledeste încărcat efectiv de Nginx.

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

Acum fișierul dvs. de configurare sites-availableva fi gata de utilizare și va fi încărcat de la sites-enabled. Pentru a aplica configurația astfel încât să intre în vigoare, pur și simplu reporniți Nginx.

sudo systemctl restart nginx

În cele din urmă, reporniți aplicația PM2

pm2 restart [id]

Acum puteți naviga către domeniul dvs. într-un browser și veți vedea un Welcome to Keystoneecran, cu un panou pentru a vă autentifica.

Dacă îl vedeți, atunci ați configurat cu succes un server web de producție Node.js. Dacă nu, atunci este posibil să fi făcut un pas incorect și poate doriți să vă întoarceți și să urmați fiecare pas cu atenție.

Puteți afla mai multe despre Nginx vizitând site - ul lor web .

Sper că v-a plăcut acest tutorial și sper că acest lucru v-a ajutat să vă configurați propriul server web pentru producție pe Vultr VPS.



Leave a Comment

Cum se instalează Anchor CMS pe un VPS Fedora 26 LAMP

Cum se instalează Anchor CMS pe un VPS Fedora 26 LAMP

Folosind un sistem diferit? Anchor CMS este un motor de blog de sistem de gestionare a conținutului (CMS) super-simplu și extrem de ușor, gratuit și deschis

Cum se instalează Thelia 2.3 pe Debian 9

Cum se instalează Thelia 2.3 pe Debian 9

Folosind un sistem diferit? Thelia este un instrument open source pentru crearea de site-uri web pentru e-business și gestionarea conținutului online scris în PHP. Codul sursă Thelia i

Cum se instalează Couch CMS 2.0 pe un VPS CentOS 7 LAMP

Cum se instalează Couch CMS 2.0 pe un VPS CentOS 7 LAMP

Folosind un sistem diferit? Couch CMS este un sistem de gestionare a conținutului (CMS) simplu și flexibil, gratuit și deschis, care permite proiectanților web să deseneze

Cum se instalează Automad CMS pe FreeBSD 12

Cum se instalează Automad CMS pe FreeBSD 12

Folosind un sistem diferit? Automad este un sistem open source de conținut bazat pe fișiere (CMS) și motor de șabloane, scris în PHP. Codul sursă Automad i

Cum se instalează BlogoText CMS pe un VPS Debian 9 LAMP

Cum se instalează BlogoText CMS pe un VPS Debian 9 LAMP

Folosind un sistem diferit? BlogoText CMS este un sistem simplu și ușor, gratuit și liber de gestionare a conținutului de conținut (CMS) și un motor de blog minimalist

Instalarea Bolt CMS pe CentOS 7

Instalarea Bolt CMS pe CentOS 7

Bolt este un CMS open source scris în PHP. Codul sursă Bolts este găzduit pe GitHub. Acest ghid vă va arăta cum instalați Bolt CMS pe un nou CentOS 7 Vult

Cum se instalează Backdrop CMS 1.8.0 pe un Debian 9 LAMP VPS

Cum se instalează Backdrop CMS 1.8.0 pe un Debian 9 LAMP VPS

Folosind un sistem diferit? Fundalul CMS 1.8.0 este un sistem de management al conținutului (CMS), simplu și flexibil, mobil, prietenos și gratuit, care ne permite

Cum se instalează Pagekit 1.0 CMS pe un VPS Debian 9 LAMP

Cum se instalează Pagekit 1.0 CMS pe un VPS Debian 9 LAMP

Folosind un sistem diferit? Pagekit 1.0 CMS este un sistem frumos de gestionare a conținutului (CMS), modular, extensibil și ușor, gratuit și deschis, cu

Cum se instalează Anchor CMS pe un VPS FreeBSD 11 FAMP

Cum se instalează Anchor CMS pe un VPS FreeBSD 11 FAMP

Folosind un sistem diferit? Anchor CMS este un motor de blog de sistem de gestionare a conținutului (CMS) super-simplu și extrem de ușor, gratuit și deschis

Cum se instalează MODX CMS și Nginx pe CentOS 7

Cum se instalează MODX CMS și Nginx pe CentOS 7

MODX este un sistem de gestionare a conținutului liber și open source scris în PHP. Folosește MySQL sau MariaDB pentru a stoca baza de date. MODX este proiectat pentru business i

Cum se instalează WonderCMS pe FreeBSD 12

Cum se instalează WonderCMS pe FreeBSD 12

Folosind un sistem diferit? WonderCMS este un CMS cu fișier plat, de tip open source, rapid și mic, scris în PHP. Codul sursă WonderCMS este găzduit pe Github. Acest ghid va fi

Cum se instalează Neos CMS pe Ubuntu 18.04 LTS

Cum se instalează Neos CMS pe Ubuntu 18.04 LTS

Folosind un sistem diferit? Neos este o platformă de aplicații de conținut cu un CMS și un cadru de aplicații în centrul său. Acest ghid vă va arăta cum să instalați

Cum se instalează Pagekit 1.0 CMS pe un VPS FreeBSD 11 FAMP

Cum se instalează Pagekit 1.0 CMS pe un VPS FreeBSD 11 FAMP

Folosind un sistem diferit? Pagekit 1.0 CMS este un sistem frumos de gestionare a conținutului (CMS), modular, extensibil și ușor, gratuit și deschis, cu

Cum se instalează Redaxscript 3.2 CMS pe un VPS Debian 9 LAMP

Cum se instalează Redaxscript 3.2 CMS pe un VPS Debian 9 LAMP

Folosind un sistem diferit? Redaxscript 3.2 CMS este un sistem de gestionare a conținutului (CMS) modern și ultra ușor, gratuit și deschis, cu rachetă

Instalați Tiki Wiki CMS Groupware pe Ubuntu 18.04 LTS

Instalați Tiki Wiki CMS Groupware pe Ubuntu 18.04 LTS

Folosind un sistem diferit? Introducere Tiki Wiki CMS Groupware, cunoscut și sub numele de Tiki, este un sistem gratuit și deschis de gestionare a conținutului wiki. Funcția Tikis

Cum se instalează Anchor CMS pe un Ubuntu 16.04 LAMP VPS

Cum se instalează Anchor CMS pe un Ubuntu 16.04 LAMP VPS

Folosind un sistem diferit? Anchor CMS este un motor de blog de sistem de gestionare a conținutului (CMS) super-simplu și extrem de ușor, gratuit și deschis

Cum se instalează Subrion 4.1 CMS pe un VPS Fedora 26 LAMP

Cum se instalează Subrion 4.1 CMS pe un VPS Fedora 26 LAMP

Folosind un sistem diferit? Subrion 4.1 CMS este un sistem puternic și flexibil de gestionare a conținutului de surse deschise (CMS), care aduce un conținut intuitiv și clar

Cum se instalează BoltWire pe Ubuntu 18.04

Cum se instalează BoltWire pe Ubuntu 18.04

Folosind un sistem diferit? Introducere BoltWire este un sistem gratuit și ușor de gestionare a conținutului scris în PHP. Comparativ cu majoritatea celorlalți manageri de conținut

Cum se instalează Anchor CMS pe un VPS Debian 9 LAMP

Cum se instalează Anchor CMS pe un VPS Debian 9 LAMP

Folosind un sistem diferit? Anchor CMS este un motor de blog de sistem de gestionare a conținutului (CMS) super-simplu și extrem de ușor, gratuit și deschis

Cum se instalează BigTree CMS 4.2 pe un VPS CentOS 7 LAMP

Cum se instalează BigTree CMS 4.2 pe un VPS CentOS 7 LAMP

Folosind un sistem diferit? BigTree CMS 4.2 este un sistem de gestionare a conținutului (CMS) rapid și ușor, gratuit și liber, cu o întreprindere

O perspectivă asupra a 26 de tehnici de analiză a datelor mari: partea 1

O perspectivă asupra a 26 de tehnici de analiză a datelor mari: partea 1

O perspectivă asupra a 26 de tehnici de analiză a datelor mari: partea 1

6 lucruri extrem de nebunești despre Nintendo Switch

6 lucruri extrem de nebunești despre Nintendo Switch

Mulți dintre voi cunoașteți Switch care va fi lansat în martie 2017 și noile sale funcții. Pentru cei care nu știu, am pregătit o listă de funcții care fac din „Switch” un „gadget obligatoriu”.

Promisiuni tehnologice care sunt încă nelivrate

Promisiuni tehnologice care sunt încă nelivrate

Aștepți ca giganții tehnologiei să-și îndeplinească promisiunile? vezi ce a ramas nelivrat.

Funcționalitățile straturilor arhitecturii de referință pentru Big Data

Funcționalitățile straturilor arhitecturii de referință pentru Big Data

Citiți blogul pentru a cunoaște diferitele straturi din Arhitectura Big Data și funcționalitățile acestora în cel mai simplu mod.

Cum poate AI să ducă automatizarea proceselor la următorul nivel?

Cum poate AI să ducă automatizarea proceselor la următorul nivel?

Citiți asta pentru a afla cum devine populară inteligența artificială în rândul companiilor la scară mică și cum crește probabilitățile de a le face să crească și de a le oferi concurenților avantaje.

CAPTCHA: Cât timp poate rămâne o tehnică viabilă pentru distincția uman-AI?

CAPTCHA: Cât timp poate rămâne o tehnică viabilă pentru distincția uman-AI?

CAPTCHA a devenit destul de dificil de rezolvat pentru utilizatori în ultimii ani. Va fi capabil să rămână eficient în detectarea spam-ului și a botului în viitor?

Singularitatea tehnologică: un viitor îndepărtat al civilizației umane?

Singularitatea tehnologică: un viitor îndepărtat al civilizației umane?

Pe măsură ce Știința Evoluează într-un ritm rapid, preluând multe dintre eforturile noastre, crește și riscurile de a ne supune unei Singularități inexplicabile. Citiți, ce ar putea însemna singularitatea pentru noi.

Telemedicină și îngrijire medicală la distanță: viitorul este aici

Telemedicină și îngrijire medicală la distanță: viitorul este aici

Ce este telemedicina, îngrijirea medicală la distanță și impactul acesteia asupra generației viitoare? Este un loc bun sau nu în situația de pandemie? Citiți blogul pentru a găsi o vedere!

Te-ai întrebat vreodată cum câștigă hackerii bani?

Te-ai întrebat vreodată cum câștigă hackerii bani?

Poate ați auzit că hackerii câștigă mulți bani, dar v-ați întrebat vreodată cum câștigă acești bani? sa discutam.

Actualizarea suplimentului macOS Catalina 10.15.4 cauzează mai multe probleme decât rezolvă

Actualizarea suplimentului macOS Catalina 10.15.4 cauzează mai multe probleme decât rezolvă

Recent, Apple a lansat macOS Catalina 10.15.4 o actualizare suplimentară pentru a remedia problemele, dar se pare că actualizarea provoacă mai multe probleme care duc la blocarea mașinilor Mac. Citiți acest articol pentru a afla mai multe