Instalar Sails.js Framework con Nginx en CentOS 8
Sails.js es un framework Javascript para Node.js. Se utiliza para desarrollar aplicaciones en tiempo real muy rápidamente. Permite asemejarse a la arquitectura MVC de frameworks como Ruby on Rails. Viene con planos que ayudan a poner en marcha el backend de tu aplicación sin tener que escribir ningún código. Es compatible con otros front-end, como Angular, React, iOS, Android, Windows Phone, hardware personalizado o algo totalmente distinto.
En este post, te mostraremos cómo instalar Sails.js con Nginx en CentOS 8
Requisitos previos
- Un servidor que ejecute CentOS 8.
- Una contraseña de root configurada en el servidor.
Instalar Node.js
En primer lugar, instala todas las dependencias necesarias utilizando el siguiente comando:
dnf install curl gcc-c++ make -y
Una vez instaladas todas las dependencias, añade el repositorio de fuentes de Node con el siguiente comando:
curl -sL https://rpm.nodesource.com/setup_16.x | bash -
Después de añadir el repositorio de fuentes de Node, instala el Node.js con el siguiente comando:
dnf install nodejs -y
Una vez completada la instalación, verifica la versión de Node.js con el siguiente comando:
node --version
Deberías obtener la siguiente salida:
v16.4.0
Instalar Sails.js
Puedes instalar Sails.js utilizando el comando NPM como se muestra a continuación:
npm -g install sails
A continuación, crea tu proyecto utilizando Sails.js con el siguiente comando:
sails new myproject
Se te pedirá que elijas una plantilla para tu aplicación:
Choose a template for your new Sails app: 1. Web App · Extensible project with auth, login, & password recovery 2. Empty · An empty Sails app, yours to configure (type "?" for help, or <CTRL+C> to cancel) ? 2
Escribe 2 y pulsa Enter para instalar la aplicación. Deberías obtener la siguiente salida:
info: Installing dependencies... Press CTRL+C to cancel. (to skip this step in the future, use --fast) info: Created a new Sails app `myproject`!
Inicia la aplicación Sails.js
A continuación, cambia el directorio a miproyecto e inicia tu aplicación con el siguiente comando:
cd myproject
sails lift
Deberías obtener la siguiente salida:
info: Starting app... info: info: .-..-. info: info: Sails <| .-..-. info: v1.4.3 |\ info: /|.\ info: / || \ info: ,' |' \ info: .-'.-==|/_--' info: `--'-------' info: __---___--___---___--___---___--___ info: ____---___--___---___--___---___--___-__ info: info: Server lifted in `/root/myproject` info: To shut down Sails, press+ C at any time. info: Read more at https://sailsjs.com/support. debug: ------------------------------------------------------- debug: :: Thu Jun 24 2021 04:46:13 GMT-0400 (Eastern Daylight Time) debug: Environment : development debug: Port : 1337 debug: -------------------------------------------------------
Pulsa CTRL + C para detener la aplicación.
Crea un archivo de servicio Systemd para Sails.js
A continuación, tendrás que crear un archivo de servicio systemd para gestionar tu aplicación.
Puedes crearlo con el siguiente comando:
nano /lib/systemd/system/sails.service
Añade las siguientes líneas:
[Unit] After=network.target [Service] Type=simple User=root WorkingDirectory=/root/myproject ExecStart=/usr/bin/sails lift Restart=on-failure [Install] WantedBy=multi-user.target
Guarda y cierra el archivo y luego recarga el demonio systemd con el siguiente comando:
systemctl daemon-reload
A continuación, inicia el servicio Sails y habilítalo para que se inicie al reiniciar el sistema:
systemctl start sails
systemctl enable sails
Puedes comprobar el estado de Sails con el siguiente comando:
systemctl status sails
Deberías obtener la siguiente salida:
? sails.service Loaded: loaded (/usr/lib/systemd/system/sails.service; disabled; vendor preset: disabled) Active: active (running) since Thu 2021-06-24 04:47:07 EDT; 5s ago Main PID: 47388 (node) Tasks: 22 (limit: 25014) Memory: 148.1M CGroup: /system.slice/sails.service ??47388 node /usr/bin/sails lift ??47395 grunt Jun 24 04:47:09 centos8 sails[47388]: info: ____---___--___---___--___---___--___-__ Jun 24 04:47:09 centos8 sails[47388]: info: Jun 24 04:47:09 centos8 sails[47388]: info: Server lifted in `/root/myproject` Jun 24 04:47:09 centos8 sails[47388]: info: To shut down Sails, press+ C at any time. Jun 24 04:47:09 centos8 sails[47388]: info: Read more at https://sailsjs.com/support. Jun 24 04:47:09 centos8 sails[47388]: debug: ------------------------------------------------------- Jun 24 04:47:09 centos8 sails[47388]: debug: :: Thu Jun 24 2021 04:47:09 GMT-0400 (Eastern Daylight Time) Jun 24 04:47:09 centos8 sails[47388]: debug: Environment : development Jun 24 04:47:09 centos8 sails[47388]: debug: Port : 1337 Jun 24 04:47:09 centos8 sails[47388]: debug: -------------------------------------------------------
En este punto, Sails está iniciado y escuchando en el puerto 1337.
Configurar Nginx como proxy inverso para la aplicación Sails
Se recomienda instalar y configurar Nginx como proxy inverso para tu aplicación Sails.
Primero, instala el paquete Nginx con el siguiente comando:
dnf install nginx -y
Después de instalar Nginx, crea un archivo de configuración de host virtual Nginx para Sails:
nano /etc/nginx/conf.d/sails.conf
Añade las siguientes líneas:
server { listen 80; server_name sails.domain.com; location / { proxy_pass http://localhost:1337/; proxy_set_header Host $host; proxy_buffering off; } }
Guarda y cierra el archivo cuando hayas terminado.
A continuación, comprueba si Nginx tiene algún error de configuración con el siguiente comando:
nginx -t
Deberías obtener la siguiente salida:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
A continuación, inicia el servicio Nginx y habilítalo para que se inicie al reiniciar el sistema:
systemctl start nginx
systemctl enable nginx
Ahora, comprueba el estado del servicio Nginx con el siguiente comando:
systemctl status nginx
Configurar el cortafuegos
A continuación, tendrás que permitir el puerto 80 a través del cortafuegos. Puedes permitirlo con el siguiente comando:
firewall-cmd --permanent --zone=public --add-port=80/tcp
A continuación, recarga el cortafuegos para aplicar los cambios:
firewall-cmd --reload
Una vez que hayas terminado, puedes pasar al siguiente paso.
Accede a la interfaz web de Sails.js
Ahora, abre tu navegador web y accede a la interfaz web de Sails.js utilizando la URL http://salis.domain.com. Deberías ver la página por defecto de Sails.js en la siguiente pantalla:
Conclusión
Enhorabuena! has instalado con éxito Sails.js con Nginx como proxy inverso en CentOS 8. Ahora puedes empezar a desarrollar aplicaciones en tiempo real con Sails.