Configureu un servidor Keystone.js amb Nginx Reverse Proxy a Ubuntu 16.04

En aquest tutorial, configurarem un servidor web amb un servidor intermediari invers. El CMS que farem servir és Keystone.js, un marc d'aplicacions web conegut basat en Express.js. El servidor intermediari invers que utilitzarem és Nginx, que és un servidor intermediari invers gratuït i de codi obert, així com un servidor HTTP. La base de dades que farem servir és MongoDB, una base de dades de documents NoSQL. Això requerirà que tingueu un domini amb registres configurats. Si no teniu aquest conjunt, seguiu endavant i cuideu-lo i torneu a aquest tutorial.

Instal·lació de Node

Primer, instal·larem Node.js, que és un intèrpret de Javascript basat en el motor 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

Instal·lant Nginx

A continuació, instal·larem Nginx, el nostre servidor intermediari invers.

sudo apt update
sudo apt install nginx

Això actualitzarà les llistes de paquets i instal·larà Nginx. Un cop feta la instal·lació, configurarem el nostre projecte de nodes.

Iniciant el nostre projecte Keystone

Creeu el nostre projecte de nodes. Per fer-ho, només cal que creeu una nova carpeta.

mkdir website

Aleshores, crearem el nostre package.jsonfitxer. Per fer-ho, només cal que executeu npm initel vostre terminal, ompliu els camps i responeu " yes" per confirmar. Un cop hàgiu creat el package.jsonfitxer, instal·larem els mòduls de nodes següents.

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

Un cop s'hagi acabat de descarregar, executeu el següent.

yo keystone

Ompliu els camps obligatoris. Et demanarà el project name, el template engine, emailel tauler de control, etc. Si no sabeu què seleccionar, els valors predeterminats estaran bé. Després d'haver configurat la configuració de keystone, podem provar per veure si el nostre servidor s'està executant escrivint node keystoneper iniciar la vostra aplicació. De manera predeterminada, la vostra aplicació s'executarà a localhost, al port 3000. Tingueu en compte que si no teniu instal·lat MongoDB, una base de dades no estarà disponible immediatament. Podeu aprendre com instal·lar-lo més endavant al tutorial.

Aquí teniu la disposició bàsica del directori per a Keystone.js:

  • /lib - Aquí és on emmagatzemareu les vostres biblioteques personalitzades i altres codis.

  • /models- Aquí és on emmagatzemareu els models de base de dades de la vostra aplicació. KeystoneJS utilitza MongoDB com a proveïdor de bases de dades.

  • /public - Aquí és on s'emmagatzemaran els vostres fitxers estàtics (CSS, JS, imatges, etc.).

  • /routes/api - Aquí és on s'emmagatzemaran els controladors de l'API de la vostra aplicació.

  • /routes.views - Els controladors de visualització de l'aplicació s'emmagatzemaran aquí.

  • /templates - Aquí és on s'emmagatzemaran tots els fitxers de plantilla de la vostra aplicació.

  • /updates - Aquí és on s'emmagatzemaran els vostres scripts de migració.

  • package.json - Aquest és el vostre fitxer de configuració npm que el generador ens ha generat.

  • keystone.js - El nostre fitxer d'inici principal, ho executem quan iniciem el lloc web.

Inicialització de la nostra base de dades

Com s'ha esmentat anteriorment, la nostra base de dades que farem servir és MongoDB, que és una base de dades NoSQL fiable orientada a documents. Si ja teniu instal·lat MongoDB, podeu ometre aquesta secció. Si no, aquí teniu com instal·lar-lo a Ubuntu 16.04.

Importeu la clau pública utilitzada per al paquet mongoDB.

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

Creeu el fitxer de llista utilitzat per instal·lar el paquet.

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

Actualitzeu les vostres llistes de paquets amb apt.

sudo apt update

Finalment, instal·leu MongoDB.

sudo apt install mongodb-org -y

Quan acabi aquesta instal·lació, inicieu MongoDB.

sudo service mongod start

Això iniciarà el procés de MongoDB al port 27017.

MongoDB s'utilitzarà a tota l'aplicació i s'utilitzarà per emmagatzemar informació que fem servir per als nostres models, per exemple, un Usermodel. Keystone l'utilitza com a base de dades preferida i, en aquest moment, no podeu utilitzar altres proveïdors de bases de dades.

Instal·lació de PM2

Ara és el moment d'instal·lar PM2 (Process Manager 2.) PM2 és un gestor de processos per a aplicacions Node.js, en forma de mòdul npm. Proporciona una manera senzilla de gestionar les vostres aplicacions i executar-les en segon pla. Com que està a NPM, tot el que hem de fer per instal·lar-lo és executar el següent.

sudo npm install pm2 -g

Això indica a npm que l'instal·li globalment, de manera que el podem utilitzar a qualsevol lloc del nostre sistema.

Execució/Gestió d'una aplicació en PM2

Abans, vam executar la nostra aplicació web amb node keystone. Amb PM2, és una mica diferent. Ara executem la nostra aplicació de nodes amb el següent.

pm2 start keystone.js

Això afegirà la nostra aplicació PM2 a la nostra llista de processos i es mostrarà un petit quadre perquè pugueu veure que està realment en línia. Observeu la casella etiquetada idper al vostre procés. Mantingueu-ho a prop, ja que més endavant farem moltes referències a això.

Per veure els registres de la vostra aplicació.

pm2 logs [id]

Per exemple, pm2 logs 0si aquesta és la vostra primera aplicació PM2.

Per aturar la vostra aplicació web en qualsevol moment.

pm2 stop [id]

Per eliminar completament la vostra aplicació.

pm2 delete [id]

PM2 fins i tot té un tauler de control si voleu veure algunes estadístiques bàsiques de la vostra aplicació, i podeu accedir-hi amb això.

pm2 monit

Això mostrarà informació bàsica com ara l'ús de la memòria RAM, l'ús de la CPU i el temps de funcionament.

Una gran característica que ofereix PM2 és watching. En essència, l'observació és quan PM2 detecta automàticament els canvis en qualsevol dels fitxers del mateix directori que el vostre fitxer d'inici i reiniciarà automàticament l'aplicació. Per activar-lo, només cal que reinicieu l'aplicació, però passeu-li una marca de rellotge.

pm2 restart [id] --watch

Per desactivar la visualització després d'haver-la habilitat, només cal que torneu a executar la mateixa ordre i la visualització es desactivarà.

En aquest tutorial, deixarem de vigilar.

Configuració del vostre proxy invers

Assegureu-vos que teniu Nginx instal·lat. Si per algun motiu no ho és, feu referència als passos anteriors.

Ajusteu la configuració del vostre tallafoc. A Ubuntu, ufwés el tallafoc oficial. Per defecte, les connexions estan bloquejades al port 80. Hem d'afegir una excepció per a Nginx al port 80, on s'executarà la nostra aplicació web.

sudo ufw allow 'Nginx HTTP'

Verifiqueu que el vostre servidor Nginx s'està executant.

systemctl status nginx

Sota la Activesecció, si veus active (running), ja estàs a punt. Si no, podeu provar de reiniciar el servei.

systemctl restart nginx

Suprimiu el fitxer de configuració predeterminat de Nginx.

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

Creeu-ne un de nou i simplement truqueu-lo node.

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

Enganxeu el següent al fitxer i substituïu example.com-lo pel domini del vostre lloc web.

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

Tingueu en compte que el proxy_passdenota la IP on s'executa la nostra aplicació Keystone de manera local, que es troba localhostal port 3000. listen 80és el port al qual volem que es dirigeixi l'aplicació, que en aquest cas és port 80.

Aleshores, hem de crear un enllaç simbòlic o enllaç simbòlic a una carpeta anomenada sites-enabled. La diferència entre sites-enabledi sites-availableés que sites-enabledNginx carrega realment.

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

Ara el vostre fitxer de configuració sites-availableestarà a punt per utilitzar-lo i es carregarà des de sites-enabled. Per aplicar la configuració perquè tingui efecte, simplement reinicieu Nginx.

sudo systemctl restart nginx

Finalment, reinicieu l'aplicació PM2

pm2 restart [id]

Ara podeu navegar al vostre domini en un navegador i veureu una Welcome to Keystonepantalla amb un panell per iniciar sessió.

Si el veieu, vol dir que heu configurat correctament un servidor web de producció Node.js. Si no és així, és possible que hàgiu fet un pas incorrectament i potser voldreu tornar enrere i seguir cada pas amb cura.

Podeu obtenir més informació sobre Nginx visitant el seu lloc web .

Espero que us hagi agradat aquest tutorial i espero que us hagi ajudat a configurar el vostre propi servidor web per a la producció al vostre VPS Vultr.

Deixa un comentari

The Rise of Machines: Real World Applications of AI

The Rise of Machines: Real World Applications of AI

La Intel·ligència Artificial no està en el futur, és aquí mateix en el present. En aquest bloc Llegiu com les aplicacions d'Intel·ligència Artificial han afectat diversos sectors.

Atacs DDOS: una breu visió general

Atacs DDOS: una breu visió general

També ets víctima d'atacs DDOS i estàs confós sobre els mètodes de prevenció? Llegiu aquest article per resoldre les vostres consultes.

Us heu preguntat mai com guanyen diners els pirates informàtics?

Us heu preguntat mai com guanyen diners els pirates informàtics?

Potser haureu sentit que els pirates informàtics guanyen molts diners, però us heu preguntat mai com guanyen aquest tipus de diners? anem a discutir.

Invents revolucionaris de Google que us facilitaran la vida.

Invents revolucionaris de Google que us facilitaran la vida.

Vols veure els invents revolucionaris de Google i com aquests invents van canviar la vida de tots els éssers humans actuals? A continuació, llegiu al bloc per veure els invents de Google.

Divendres essencial: què va passar amb els cotxes impulsats per IA?

Divendres essencial: què va passar amb els cotxes impulsats per IA?

El concepte de cotxes autònoms per sortir a les carreteres amb l'ajuda de la intel·ligència artificial és un somni que tenim des de fa temps. Però malgrat les diverses promeses, no es veuen enlloc. Llegeix aquest blog per saber-ne més...

Singularitat tecnològica: un futur llunyà de la civilització humana?

Singularitat tecnològica: un futur llunyà de la civilització humana?

A mesura que la ciència evoluciona a un ritme ràpid, fent-se càrrec de molts dels nostres esforços, també augmenten els riscos de sotmetre'ns a una singularitat inexplicable. Llegeix, què pot significar per a nosaltres la singularitat.

Funcionalitats de les capes darquitectura de referència de Big Data

Funcionalitats de les capes darquitectura de referència de Big Data

Llegeix el blog per conèixer de la manera més senzilla les diferents capes de l'Arquitectura Big Data i les seves funcionalitats.

Evolució de lemmagatzematge de dades – Infografia

Evolució de lemmagatzematge de dades – Infografia

Els mètodes d'emmagatzematge de les dades que han anat evolucionant poden ser des del naixement de les dades. Aquest bloc tracta l'evolució de l'emmagatzematge de dades a partir d'una infografia.

6 avantatges sorprenents de tenir dispositius domèstics intel·ligents a les nostres vides

6 avantatges sorprenents de tenir dispositius domèstics intel·ligents a les nostres vides

En aquest món digital, els dispositius domèstics intel·ligents s'han convertit en una part crucial de les vides. A continuació, es mostren alguns avantatges sorprenents dels dispositius domèstics intel·ligents sobre com fan que la nostra vida valgui la pena i sigui més senzilla.

Lactualització del suplement de macOS Catalina 10.15.4 està causant més problemes que no pas solucions

Lactualització del suplement de macOS Catalina 10.15.4 està causant més problemes que no pas solucions

Recentment, Apple va llançar macOS Catalina 10.15.4, una actualització de suplements per solucionar problemes, però sembla que l'actualització està causant més problemes que provoquen el bloqueig de les màquines Mac. Llegiu aquest article per obtenir més informació