Configurar vps para proyectos de nodeJS en producción

CONFIGURAR UN VPS PARA NUESTROS PROYECTOS DE NODE JS EN PRODUCCIÓN

En este mini curso aprenderemos a configurar un vps desde cero, instalando todos los programas necesarios.

NodeJs: Este programa compila el lenguaje de javascript en el lado del servidor, está catalogado como uno de los compiladores más óptimos por su motor v8 desarrollado por google. Permite instalar librerías globales, librerías locales y frameworks. Al momento de escribir este informe este programa cuenta con sus versiones 18.x pero ya hemos probado ampliamente esa versión y aún no es estable del todo por lo que instalaremos la versión 16.19.1 

NVM: Este programa es un administrador de versiones de Node Js, actualmente se encuentra en sus versiones 8.x. Nos permitirá cambiar versiones de nodejs de ser necesario.

Nginx: Este programa es un servidor web, proxy, balanceador de carga, cache http. Ayuda en la gestión de dominios y subdominios en el VPS para que estos sean redirigidos a puertos específicos donde se ejecutan las apis o plataformas web. Este programa es el más usado en sitios con más tráfico del mundo tales como google, wordpress, nasa, facebook, netflix, etc. 

PostgresQl: Este programa permite gestionar las bases de datos como servidor y cliente actualmente se encuentra en sus versiones 14.x el cual lo vamos usando ampliamente en producción, de acuerdo a la memoria Ram del vps de 2 gigas estableceremos una capacidad de trabajo de 200 workers. Esta base de datos es una base de datos relacional con muchas librerías y addons, la escogemos por su amplia versatilidad de trabajo ya que se puede trabajar incluso con geo referencias con la librerías PostGis el cual ya la hemos trabajado también ampliamente, Algo que ayuda mucho también es su capacidad de trabajo con campos de tipo Json el cual incluso permite hacer búsquedas dentro de estos campos el cual es posible en bases de datos no relacionales.

CertBot: Es un programa de código abierto que permite trabajar automáticamente con Let’s Encrypt para generar certificados SSL y habilitar el protocolo https para todos los dominios, este programa genera y administra estos certificados de conexión segura actualizandolos cada 3 meses para todos los dominios y/o subdominios administrados por nginx. 

PM2: Es un programa que permite gestionar múltiples procesos de nodejs en el VPS, pm2 puede mantener corriendo varios procesos en nodejs mostrando los recursos que este consume, detectar fallos en el programa guardando los logs, reiniciarse de ser necesario para seguir manteniendo los procesos funcionando. Una característica que nos gusta de pm2 es que nunca esta off apesar de actualizar a una nueva versión el programa o cuando reinicia procesos de nodejs por lo que lo llevamos usando más de 4 años en producción. 

CODIGOS Y LINKS QUE USAREMOS

Creando el vps en Digital Ocean:

Se pueden registrar en digital ocean desde el siguiente enlace:

DigitalOcean Referral Badge

Al hacerlo con mi código https://m.do.co/c/dc545dd62b99 obtendrán un bono de $200 dólares por 2 meses para poder probar todo lo que está en este tutorial en forma gratuita.

Instalando y configurando nginx

sudo apt update

sudo apt install nginx

 Y al ingresar a la ip de tu VPS tendrá que salir un mensaje de nginx

Ahora hay que habilitar los puertos de acceso, incluso es posible que se haya cerrado el puerto 22 del ssh. Así que tener cuidado verificarlo con

sudo ufw status

 Si el mensaje es "Status: Inactive" se puede activar con 

sudo ufw enable

Si el mensaje es "Status: active" debería salir los puertos que están abiertos en este caso debería salir el puerto 22. Si no sale nada Quiere decir que está cerrado y cuando salgas y vuelvas a entrar por ssh no podrás hacerlo.  Lo activaremos un poco más abajo.

 Ahora hay que activar los puertos necesarios que usara nginx este es el de http que es el puerto 8080 y https que es el 443, cuidar que el puerto 22 de tu acceso ssh siga activo.

podemos ver la lista de programas que necesitan estas configuraciones con:

sudo ufw app list

 Como vemos si es nuestro vps recién configurado solo tendremos programas de nginx y OpenSSH, para activar el ssh de nuevo pondremos

sudo ufw allow ssh

al volver a poner "sudo ufw status" podremos ver que ahora ya salen los puertos 22 activos si antes no salían.

 Tendremos que activar los puertos necesarios para nginx con:

sudo ufw allow 'Nginx Full'

 al volver a poner "sudo ufw status" podremos ver que ahora debe salir nginx full activo

Códigos necesarios para manejar PostgresQL desde consola

Acontinuación pongo algunos de los códigos que usamos más frecuentemente al ingresar a nuestro postrgresql

Ingresar a Postgres: 

    

sudo -i -u postgres

Luego poner:

    psql

 

Para crear una base de datos:

  CREATE DATABASE mibase; 

\d

Enumerar tablas (excepto las tablas del sistema)

\d table

Enumerar columnas de tabla

\dt

Enumerar tablas en todos los esquemas (detallados)

\dt table

Tabla de lista (detallada)

\dn

Enumerar esquemas

\l

Listar Bases de datos

\c mibase

Conexión a una base de datos

Para crear un usuario

create user miusuario with encrypted password 'micontraseña';

 Vincular usuario con base de datos

grant all privileges on database mibasededatos to miusuario;

Para pm2

Está explicado en el video pero deberían visitar la página de documentación el cual es la siguiente: https://pm2.keymetrics.io/

Consideramos que todo lo demás está explicado en el video. Les agradeceré suscribir a nuestro canal y visitarnos por aquí constantemente. Muchos éxitos en sus proyectos

Códigos para configurar dominios con nginx

Configurar dominio a un puerto

Para configurar dominios en nginx y estos sean redirigidos a un puerto en específico se usa el siguiente código

upstream midominio.com {   server 142.98.248.250:4001; }  

server {   

    server_name midominio.com www.midominio.com;   

    access_log /var/log/nginx/midominio.com.access.log;   

    error_log /var/log/nginx/midominio.com.log debug;    

    location / {     

        proxy_set_header X-Real-IP $remote_addr;     

        proxy_set_header X-Forwarder-For $proxy_add_x_forwarded_for;     

        proxy_set_header Host $http_host;     

        proxy_set_header X-NginX-Proxy true;      

        proxy_pass http://midominio.com;     

        proxy_redirect off;   

    } 

}

Configurar dominio a una carpeta con archivos html,css,imágenes,etc.

Para configurar un dominio y que este apunte a una carpeta donde tenemos archivos html se hace de la siguiente forma.

Cabe resaltar que la línea de root son carpetas /var/www/ y recomiendo poner en las carpetas el nombre del dominio de cada proyecto que creen. por eso queda la ruta /var/www/midominio.com

server{

        root /var/www/midominio.com;

        index index.html index.htm;

        server_name midominio.com www.midominio.com;

         location / {

        try_files $uri $uri/ =404;

    }

}

Configurar dominio a una carpeta con php

Para configurar un dominio y que este apunte a una carpeta donde tenemos archivos php se hace de la siguiente forma. 

Deben instalar php primero y poner la dirección del fpm.sock esto puede ser distinto en cada versión de php

server{

        root /srv/www/midominio.com;

        index index.html index.htm index.php;

        server_name midominio.com www.midominio.com;

location / {

        try_files $uri $uri/ =404;

    }

    location ~ \.php$ {

    #NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini

    include fastcgi_params;

    fastcgi_intercept_errors on;

    fastcgi_pass unix:/run/php/php7.2-fpm.sock;

    fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;

}

}

Puedes ver todo el curso paso a paso aqui:

Artículos relacionados

Configurar vps para proyectos de nodeJS en producción

Tutoriales > Servidores

Configurar vps para proyectos de nodeJS en producción

Aprende todo lo necesario para poner en producción tus proyectos de nodejs en un vps

Leer más
Cómo crecer en TikTok en 2025 con estrategias efectivas

Tecnología > Redes Sociales

Cómo crecer en TikTok en 2025 con estrategias efectivas

Aprende las mejores estrategias para crecer en TikTok en 2025. Descubre cómo aumentar seguidores, conseguir más vistas y destacar en la plataforma.

Leer más
7 Hábitos para Mejorar tu Salud en 30 Días

Salud > Bienestar y hábitos

7 Hábitos para Mejorar tu Salud en 30 Días

Aprende los 7 hábitos más efectivos para mejorar tu salud física y mental en solo 30 días, respaldados por la ciencia.

Leer más
Invertir con poco dinero en 2025: opciones reales y seguras

Economía > Finanzas Personales

Invertir con poco dinero en 2025: opciones reales y seguras

Descubre cómo invertir con poco dinero en 2025. Opciones seguras y accesibles para empezar a generar ingresos, incluso con bajo capital.

Leer más
Virgo en la Salud: equilibrio, bienestar físico y energía emocional

Astrología > Virgo

Virgo en la Salud: equilibrio, bienestar físico y energía emocional

Guía completa sobre la salud física, emocional y mental de Virgo. Descubre sus fortalezas, puntos sensibles, hábitos recomendados y consejos de bienestar según la astrología.

Leer más
Cómo Crear un Negocio Online con Poca Inversión

Economía > Emprendimiento Digital

Cómo Crear un Negocio Online con Poca Inversión

Descubre cómo crear un negocio online rentable con poca inversión. Aprende estrategias, herramientas y modelos de negocio digital que puedes comenzar hoy mismo para generar ingresos desde internet.

Leer más
La Campaña de Tarapacá: Desembarco Chileno

Historia > Perú vs Chile

La Campaña de Tarapacá: Desembarco Chileno

Descubre la Campaña de Tarapacá, un punto clave en la Guerra del Pacífico. Conoce los objetivos militares, movimientos de tropas y situación de los aliados en este conflicto histórico.

Leer más
La Inteligencia Artificial que Crea Videos con Solo Escribir Texto: Así Funciona en 2025

Tecnología > Inteligencia Artificial

La Inteligencia Artificial que Crea Videos con Solo Escribir Texto: Así Funciona en 2025

En 2025, la inteligencia artificial es capaz de crear videos realistas a partir de simples descripciones de texto. Te contamos cómo funciona, qué herramientas existen y cómo podría cambiar la forma en la que consumimos contenido en internet.

Leer más
Cómo usar WhatsApp sin número de teléfono en 2025

Tecnología > Redes Sociales

Cómo usar WhatsApp sin número de teléfono en 2025

Aprende paso a paso cómo usar WhatsApp sin número de teléfono físico en 2025, usando alternativas seguras y legales. Guía completa y actualizada.

Leer más
¿Qué es X11? Significados en informática, criptomonedas y tecnología

Tecnología > Innovación

¿Qué es X11? Significados en informática, criptomonedas y tecnología

X11 puede referirse al sistema de ventanas en Linux, a un algoritmo de minería en criptomonedas como Dash o a modelos tecnológicos. Aquí te explicamos cada uso en detalle.

Leer más
Biografía de Zully (Zulamita): Edad, carrera, polémicas y éxito en redes

Entretenimiento Digital > Streamers Peruanos

Biografía de Zully (Zulamita): Edad, carrera, polémicas y éxito en redes

Descubre la historia de Zully, conocida como Zulamita, la influencer peruana que conquistó TikTok y otras redes sociales. Conoce su biografía, edad, trayectoria, polémicas y evolución hacia la música.

Leer más
El algoritmo de YouTube explicado: cómo aumentar tus vistas

Tecnología > Redes Sociales

El algoritmo de YouTube explicado: cómo aumentar tus vistas

Descubre cómo funciona el algoritmo de YouTube y aprende estrategias efectivas para aumentar tus vistas, retención y suscriptores en 2025.

Leer más
El asesinato de John F. Kennedy: misterio, conspiraciones y legado histórico

Terror > Crímenes

El asesinato de John F. Kennedy: misterio, conspiraciones y legado histórico

Descubre la historia del asesinato de John F. Kennedy, un crimen que conmocionó al mundo en 1963 y que aún hoy sigue rodeado de misterio y teorías de conspiración.

Leer más
Cómo salir de deudas rápido: métodos probados y efectivos

Economía > Finanzas Personales

Cómo salir de deudas rápido: métodos probados y efectivos

Aprende cómo salir de deudas rápido con métodos probados. Estrategias prácticas, consejos financieros y hábitos para recuperar tu estabilidad económica.

Leer más
Batalla de Punta Gruesa: La Lucha por la Independencia

Historia > Perú vs Chile

Batalla de Punta Gruesa: La Lucha por la Independencia

Descubre la importancia de la Batalla de Punta Gruesa en la lucha por la independencia. Conoce las maniobras navales y su impacto estratégico en la campaña marítima.

Leer más
Clases y Objetos en PHP: Guía completa de POO con ejemplos

Tutoriales > php

Clases y Objetos en PHP: Guía completa de POO con ejemplos

Aprende Clases y Objetos en PHP (POO): sintaxis, propiedades, métodos, visibilidad, herencia, interfaces, traits, magic methods y ejemplos prácticos. Ideal para PHP 7/8+

Leer más