Instal·lació de Node
Instal·lant Nginx
Iniciant el nostre projecte Keystone
Inicialització de la nostra base de dades
Instal·lació de PM2
Execució/Gestió d'una aplicació en PM2
Configuració del vostre proxy invers
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.