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ásEn 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.
Se pueden registrar en digital ocean desde el siguiente enlace:
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.
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
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;
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
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;
}
}
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;
}
}
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;
}
}
Aprende todo lo necesario para poner en producción tus proyectos de nodejs en un vps
Leer másDescubre cómo se manifiesta Géminis en la vida espiritual: su búsqueda de conocimiento, conexión interior y apertura a nuevas experiencias espirituales.
Leer másPsicología > Comportamiento Humano
Aprende cómo los sesgos mentales como el efecto Dunning-Kruger, el sesgo de confirmación y el anclaje controlan tus decisiones sin que lo notes. Descubre cómo tu cerebro te sabotea a diario y cómo detectarlo.
Leer másAprende los fundamentos de PHP desde cero. Descubre qué son las variables, cómo se declaran, sus tipos principales y ejemplos prácticos para comenzar a programar en PHP.
Leer másDescubre cómo es Tauro en el amor: su personalidad romántica, compatibilidad con otros signos, fortalezas y desafíos en las relaciones.
Leer másNo son las típicas conspiraciones. Estos 4 casos reales fueron negados durante años hasta que se confirmaron oficialmente. Historias reales que parecen ficción.
Leer másIrregularidades detectadas por la Contraloría motivan una revisión exhaustiva del proceso de compra de un avión Antonov AN-74 por parte del Ministerio del Interior para la Policía Nacional del Perú (PNP), incluyendo cuestionamientos sobre la antigüedad de la aeronave, su procedencia y un posible sobrecosto.
Leer másTecnología > Inteligencia Artificial
Descubre las herramientas de inteligencia artificial gratis más útiles para 2025, desde generadores de texto hasta creadores de imágenes y asistentes de productividad.
Leer másConoce la historia de Jeffrey Dahmer, el “Caníbal de Milwaukee”, uno de los asesinos seriales más perturbadores de la historia, famoso por sus crímenes atroces.
Leer másDescubre cómo prevenir enfermedades comunes con buenos hábitos diarios que fortalecen tu sistema inmunológico y mejoran tu calidad de vida.
Leer másUn nuevo análisis de ADN identifica a Aaron Kosminski como Jack el Destripador, el asesino que aterrorizó Londres en 1888. Descubre la verdad detrás del misterio.
Leer másDescubre las 5 tendencias tecnológicas que revolucionarán la vida cotidiana en 2025. Desde inteligencia artificial hasta realidad aumentada, conoce cómo la innovación transformará el futuro.
Leer másDescubre cómo funciona el algoritmo de YouTube y aprende estrategias efectivas para aumentar tus vistas, retención y suscriptores en 2025.
Leer másDescubre cómo el signo Leo brilla en el ámbito espiritual. Aprende sobre su energía solar, su propósito de vida, cómo equilibrar el ego y conectar con su verdadera esencia interior
Leer másDescubre la compatibilidad de Aries con los demás signos del zodiaco en el amor, la amistad y el trabajo. Guía completa y detallada.
Leer másDurante décadas, el gobierno de Estados Unidos realizó experimentos secretos para borrar recuerdos, controlar mentes y manipular la conciencia humana. Esta es la historia real del Proyecto MK-Ultra.
Leer más