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.


Com instal·lar Thelia 2.3 a Debian 9

Com instal·lar Thelia 2.3 a Debian 9

Utilitzeu un sistema diferent? Thelia és una eina de codi obert per crear llocs web de negocis electrònics i gestionar contingut en línia escrit en PHP. Codi font de Thelia i

Com instal·lar Microweber a CentOS 7

Com instal·lar Microweber a CentOS 7

Utilitzeu un sistema diferent? Microweber és un CMS d'arrossegar i deixar anar de codi obert i una botiga en línia. El codi font de Microweber està allotjat a GitHub. Aquesta guia us mostrarà

Instal·lació de Microweber a Ubuntu 16.04

Instal·lació de Microweber a Ubuntu 16.04

Utilitzeu un sistema diferent? Microweber és un CMS d'arrossegar i deixar anar de codi obert i una botiga en línia. El codi font de Microweber està allotjat a GitHub. Aquesta guia us mostrarà

Com instal·lar dotCMS a Ubuntu 16.04

Com instal·lar dotCMS a Ubuntu 16.04

Utilitzeu un sistema diferent? DotCMS és un sistema de gestió de continguts de codi obert i de grau empresarial escrit en Java. Conté gairebé totes les funcions necessàries t

Com instal·lar Pagekit 1.0 CMS en un VPS FreeBSD 11 FAMP

Com instal·lar Pagekit 1.0 CMS en un VPS FreeBSD 11 FAMP

Utilitzeu un sistema diferent? Pagekit 1.0 CMS és un sistema de gestió de continguts (CMS) bonic, modular, extensible i lleuger, gratuït i de codi obert amb

Com instal·lar BigTree CMS en un Fedora 26 LAMP VPS

Com instal·lar BigTree CMS en un Fedora 26 LAMP VPS

Utilitzeu un sistema diferent? BigTree CMS 4.2 és un sistema de gestió de continguts (CMS) ràpid i lleuger, gratuït i de codi obert, amb una àmplia

Instal·lació de Pagekit CMS a Ubuntu 16.04 LTS

Instal·lació de Pagekit CMS a Ubuntu 16.04 LTS

Utilitzeu un sistema diferent? Pagekit és un CMS de codi obert escrit en PHP. El codi font de Pagekit està allotjat a GitHub. Aquesta guia us mostrarà com instal·lar-lo

Com instal·lar PyroCMS a Ubuntu 16.04

Com instal·lar PyroCMS a Ubuntu 16.04

Utilitzeu un sistema diferent? PyroCMS és un CMS de codi obert escrit en PHP. El codi font de PyroCMS està allotjat a GitHub. En aquesta guia passeja bé per tot

Com instal·lar Subrion 4.1 CMS en un VPS FreeBSD 11 FAMP

Com instal·lar Subrion 4.1 CMS en un VPS FreeBSD 11 FAMP

Utilitzeu un sistema diferent? Subrion 4.1 CMS és un sistema de gestió de continguts (CMS) de codi obert potent i flexible que ofereix un contingut intuïtiu i clar.

Com instal·lar Backdrop CMS 1.8.0 en un VPS Debian 9 LAMP

Com instal·lar Backdrop CMS 1.8.0 en un VPS Debian 9 LAMP

Utilitzeu un sistema diferent? Backdrop CMS 1.8.0 és un sistema de gestió de continguts (CMS) senzill i flexible, adaptat per a mòbils, gratuït i de codi obert que ens permet

Com instal·lar Roadiz CMS a Debian 9

Com instal·lar Roadiz CMS a Debian 9

Utilitzeu un sistema diferent? Introducció Roadiz és un CMS modern dissenyat per gestionar molts tipus de serveis. Basat en components Symfony i Doctrine ORM, i

Instal·lació de Microweber a Debian 9

Instal·lació de Microweber a Debian 9

Utilitzeu un sistema diferent? Microweber és un CMS d'arrossegar i deixar anar de codi obert i una botiga en línia. El codi font de Microweber està allotjat a GitHub. Aquesta guia us mostrarà

Com instal·lar Grav CMS a Fedora 28

Com instal·lar Grav CMS a Fedora 28

Utilitzeu un sistema diferent? Grav és un CMS de fitxer pla de codi obert escrit en PHP. El codi font de Grav està allotjat públicament a GitHub. Aquesta guia us mostrarà com t

Com instal·lar Grav CMS a Debian 9

Com instal·lar Grav CMS a Debian 9

Utilitzeu un sistema diferent? Grav és un CMS de fitxer pla de codi obert escrit en PHP. El codi font de Grav està allotjat públicament a GitHub. Aquesta guia us mostrarà com t

Com instal·lar Automad CMS a CentOS 7

Com instal·lar Automad CMS a CentOS 7

Utilitzeu un sistema diferent? Automad és un sistema de gestió de continguts (CMS) basat en fitxers de codi obert i un motor de plantilles escrit en PHP. El codi font d'Automad i

Com instal·lar Raneto a Ubuntu 17.10

Com instal·lar Raneto a Ubuntu 17.10

Raneto és una base de coneixement gratuïta i de codi obert, basada en Node.js que és fàcil de configurar i utilitzar, així com fàcil d'administrar. Categories i pàgines ar

Com instal·lar Thelia 2.3 a Ubuntu 16.04

Com instal·lar Thelia 2.3 a Ubuntu 16.04

Utilitzeu un sistema diferent? Thelia és una eina de codi obert per crear llocs web de negocis electrònics i gestionar contingut en línia escrit en PHP. Codi font de Thelia i

Com instal·lar October 1.0 CMS en un VPS Debian 9 LAMP

Com instal·lar October 1.0 CMS en un VPS Debian 9 LAMP

Utilitzeu un sistema diferent? Octubre 1.0 CMS és un sistema de gestió de continguts (CMS) senzill i fiable, gratuït i de codi obert basat en el framework Laravel

Com instal·lar ImpressPages CMS 5.0 en un Ubuntu 16.04 LAMP VPS

Com instal·lar ImpressPages CMS 5.0 en un Ubuntu 16.04 LAMP VPS

Utilitzeu un sistema diferent? ImpressPages CMS 5.0 és un sistema de gestió de continguts (CMS) senzill i eficaç, gratuït i de codi obert, fàcil d'utilitzar, basat en MVC.

Com instal·lar CMS Made Simple 2.2 en un VPS Debian 9 LAMP

Com instal·lar CMS Made Simple 2.2 en un VPS Debian 9 LAMP

Utilitzeu un sistema diferent? CMS Made Simple 2.2 és un sistema de gestió de continguts (CMS) flexible i extensible, gratuït i de codi obert dissenyat intel·ligentment per b

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.

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.

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.

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ó