Diferencia entre revisiones de «Aplicacion Node en producción en Ubuntu»
| Línea 31: | Línea 31: | ||
Ejecutar y añadir la aplicación, con la opción --name indicamos el nombre con el que se va a ejecutar. | Ejecutar y añadir la aplicación, con la opción --name indicamos el nombre con el que se va a ejecutar. | ||
pm2 start heyy.js --name 'prueba' | pm2 start heyy.js --name 'prueba' | ||
| + | <syntaxhighlight lang="bash"> | ||
| + | [PM2] Starting /root/hello.js in fork_mode (1 instance) | ||
| + | [PM2] Done. | ||
| + | ┌────┬────────────────────┬──────────┬──────┬───────────┬──────────┬──────────┐ | ||
| + | │ id │ name │ mode │ ↺ │ status │ cpu │ memory │ | ||
| + | ├────┼────────────────────┼──────────┼──────┼───────────┼──────────┼──────────┤ | ||
| + | │ 3 │ notas │ fork │ 2 │ online │ 0% │ 56.4mb │ | ||
| + | │ 4 │ prueba │ fork │ 0 │ online │ 0% │ 25.2mb │ | ||
| + | └────┴────────────────────┴──────────┴──────┴───────────┴──────────┴──────────┘ | ||
| + | </syntaxhighlight> | ||
| + | |||
| + | Las aplicaciones que se ejecutan en PM2 se reiniciarán de forma automática si la aplicación se bloquea o se detiene, pero podemos dar un paso adicional para que se cargue en el inicio del sistema usando el subcomando startup. Este subcomando genera y configura una secuencia de comandos de inicio para iniciar PM2 y sus procesos administrados al iniciarse el servidor: | ||
| + | pm2 startup systemd | ||
| + | En la última línea del resultado obtenido se incluirá un comando que se ejecutará con privilegios de superusuario a fin de configurar PM2 para que se cargue en el inicio: | ||
| + | <syntaxhighlight lang="bash"> | ||
| + | [PM2] Init System found: systemd | ||
| + | [PM2] To setup the Startup Script, copy/paste the following command: | ||
| + | sudo env PATH=$PATH:/usr/bin /usr/lib/node_modules/pm2/bin/pm2 startup systemd -u sammy --hp /root | ||
| + | |||
| + | </syntaxhighlight> | ||
Revisión del 18:06 29 sep 2021
Crear una aplicación simple
nano heey.js
const http = require('http');
const port = 8088;
const server = http.createServer((req, res) => {
res.statusCode = 200;
res.setHeader('Content-Type', 'text/plain');
res.end('Heeeeey que pasa!\n');
});
server.listen(port, hostname, () => {
console.log(`El servidor esta funcionando en: http://localhost:${port}/`);
});
Coprobamos el funcionamiento
node heyy.js
El servidor esta funcionando en: http://localhost:8088/
Nota: Node bloquea la posibilidad introducir comandos para detener node, pulsamos CTRL + C
Instalar PM2
PM2 es un administrador de procesos para aplicaciones de Node.js, permite implementar daemon, que funcionaran como servicios.
sudo npm install pm2@latest -g
Ejecutar y añadir la aplicación, con la opción --name indicamos el nombre con el que se va a ejecutar.
pm2 start heyy.js --name 'prueba'
[PM2] Starting /root/hello.js in fork_mode (1 instance) [PM2] Done. ┌────┬────────────────────┬──────────┬──────┬───────────┬──────────┬──────────┐ │ id │ name │ mode │ ↺ │ status │ cpu │ memory │ ├────┼────────────────────┼──────────┼──────┼───────────┼──────────┼──────────┤ │ 3 │ notas │ fork │ 2 │ online │ 0% │ 56.4mb │ │ 4 │ prueba │ fork │ 0 │ online │ 0% │ 25.2mb │ └────┴────────────────────┴──────────┴──────┴───────────┴──────────┴──────────┘
Las aplicaciones que se ejecutan en PM2 se reiniciarán de forma automática si la aplicación se bloquea o se detiene, pero podemos dar un paso adicional para que se cargue en el inicio del sistema usando el subcomando startup. Este subcomando genera y configura una secuencia de comandos de inicio para iniciar PM2 y sus procesos administrados al iniciarse el servidor:
pm2 startup systemd
En la última línea del resultado obtenido se incluirá un comando que se ejecutará con privilegios de superusuario a fin de configurar PM2 para que se cargue en el inicio:
[PM2] Init System found: systemd [PM2] To setup the Startup Script, copy/paste the following command: sudo env PATH=$PATH:/usr/bin /usr/lib/node_modules/pm2/bin/pm2 startup systemd -u sammy --hp /root