GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo configurar una aplicación simple de nodejs con nginx y pm2 en el servidor ubuntu

Ejecutar la aplicación nodejs en el entorno de desarrollo o local donde se proporciona la interfaz GUI en el sistema operativo es una tarea fácil, pero cuando se trata de implementarla en producción en un servidor en la nube, la mayoría de los principiantes no saben cómo comenzar. Entonces, aquí está el procedimiento detallado paso a paso para configurar una aplicación nodejs simple.

1. Creando un nuevo usuario sudo

NOTA:Si ya ha creado un usuario con privilegios de superusuario, no es necesario que siga este paso.

En realidad, puedes trabajar directamente con root usuario, pero luego algunos comandos peligrosos mal escritos por usted en la terminal causarán daño al servidor. Así que mejor ve con sudo acceda y para crearlo primero inicie sesión con root privilegios de usuario:

$ ssh [email protected]_server_ip

Y luego complételo dando la contraseña y la autenticidad del host.
Ahora crea un nuevo usuario con sudo acceso:

$ adduser sonu
$ usermod -aG sudo sonu

El primer comando crea un nuevo usuario después de hacer algunas preguntas y el segundo comando agrega ese usuario a sudo grupo (grupo de superusuario).
Ahora cierre sesión en el servidor (utilice exit comando) e inicie sesión con este nuevo usuario.

$ ssh [email protected]_ip

2. Instale nginx y node.js

Primero actualice el apt repositorio con este comando:

$ sudo apt update

Ahora instala nginx usando

$ sudo apt install nginx

Y luego nodejs con

$ curl -sL https://deb.nodesource.com/setup_6.x | bash
$ sudo apt install -y nodejs

También puede consultar las [instrucciones de instalación] oficiales de nodesource (https://github.com/nodesource/distributions#installation-instructions) para obtener la última versión de node.js.

3. Iniciar una aplicación nodejs (express) simple

Crearemos una aplicación expressjs simple usando express-generator . Así que primero instala express-generator globalmente usando lo siguiente:

$ sudo npm i express-generator -g

Después de eso, cree la aplicación express en el directorio de inicio

$ cd ~
$ express testapp

Ahora inicia la aplicación usando:

$ cd testapp
$ npm install & npm start

Su aplicación comenzará en http://localhost:8080 puerto.

4. Instale pm2 para ejecutarlo para siempre

Simplemente haz npm start no reiniciará la aplicación si la aplicación se cae en caso de falla del servidor o algo así. Entonces, para mantenerlo en funcionamiento cada vez que se reinicia el sistema, usamos pm2 aplicación nodejs. Instálelo globalmente escribiendo sudo npm i pm2 -g y ejecute la aplicación para siempre usando el siguiente comando.

$ cd testapp/bin
$ pm2 start www

5. Asignación de 8080 al puerto http predeterminado.

Ahora el paso final es usar nginx para mapear 8080 puerto predeterminado 80 puerto http Lo llamamos servidor proxy inverso.
Abra el bloque de servidor predeterminado de nginx y elimine todo de ese archivo.

$ sudo nano /etc/nginx/sites-available/default

Pegue el siguiente código en este archivo y guárdelo:

server {
   listen 80;
   server_name "";
   location / {
     proxy_pass http://localhost:8080;
     proxy_http_version 1.1;
     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
   }
}

Finalmente pruebe la configuración y vuelva a cargar el nginx:

$ sudo nginx -t
$ sudo nginx -s reload
## or restart the nginx 
$ sudo service nginx restart

El paso adicional es deshabilitar el puerto 8080 a través de ubuntu ufw cortafuegos Habilitarlo bloqueará todos los puertos. Permita algunos puertos comunes a través de Nginx Full configuración.

$ sudo ufw enable
$ sudo ufw allow 'Nginx Full'

Linux
  1. ¿Qué es el servidor Samba y cómo configurar el servidor Samba en Ubuntu Linux?

  2. Cómo instalar Elgg con Nginx en Ubuntu 18.04

  3. Cómo configurar Django con Postgres, Nginx y Gunicorn en Ubuntu 20.04

  4. Cómo proteger su servidor Ubuntu con CSF Firewall

  5. Cómo instalar y configurar MERN Stack con Nginx en Ubuntu 20.04

Cómo configurar la autenticación de contraseña con Apache en Ubuntu 18.04

Cómo crear un comercio electrónico con Prestashop y Ubuntu 18.04

Cómo instalar y configurar Sendmail en Ubuntu

Cómo instalar Apache Tomcat 10 en Ubuntu 20.04 con Nginx

Cómo instalar Apache Tomcat 10 en Ubuntu 22.04 con Nginx

Cómo proteger Nginx con Let's Encrypt en Ubuntu 20.04