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:

Velas.js

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.

También te podría gustar...