Ir al contenido principal

Cloud & IaaS — Configurar un Cloud Server con Node.JS y Nginx

L
Escrito por Luciana Parente

Aplica a: Cloud Server con Node.JS + Nginx instalado · Tiempo estimado: 20 min


¿Qué vas a lograr?

Configurar Nginx como proxy reverso para una aplicación Node.JS, crear una app de ejemplo y agregar un certificado SSL.


Antes de empezar

Conectáte al servidor por SSH — los datos de conexión están en Mi cuenta en Mis ServiciosCloud & IaaSGestionarSoftware y accesos.


Paso 1 — Configurar Nginx

  • Andá al directorio de configuración de Nginx:

cd /etc/nginx/sites-available
  • Creá el archivo de configuración para tu dominio (reemplazá tudominio.com por el tuyo):

nano tudominio.com
  • Pegá el siguiente contenido, reemplazando tudominio.com por tu dominio:

server {
server_name tudominio.com;
root /var/www/tudominio.com;
location / {
proxy_pass http://localhost:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}
  • Creá el enlace simbólico para activar el sitio:

cd /etc/nginx/sites-enabled/
ln -s /etc/nginx/sites-available/tudominio.com tudominio.com
  • Verificá que la configuración sea correcta:

nginx -t

Si todo está bien, el sistema muestra syntax is ok y test is successful.

  • Reiniciá Nginx:

service nginx restart
  • Para comprobar el funcionamiento de Nginx:

service nginx status

Paso 2 — Crear la aplicación en Node.JS

  • En el directorio /root, creá el archivo de la aplicación:

cd /root 
nano testapp.js
  • Pegá el siguiente código:

const http = require('http');
const hostname = 'localhost';
const port = 3000;
const server = http.createServer((req, res) => {
res.statusCode = 200;
res.setHeader('Content-Type', 'text/plain');
res.end('Hola mundo!\n');
});
server.listen(port, hostname, () => {
console.log(`Servidor corriendo en en http://${hostname}:${port}/`);
});
  • Detené la aplicación que corre por defecto e iniciá la tuya con PM2:

pm2 stop app.js
  • Ejecutá tu aplicación con el servicio PM2:

pm2 start testapp.js
  • Cada vez que modifiques testapp.js, reiniciá la aplicación con:

pm2 restart testapp.js

Una vez completado este paso, podés ingresar a tu dominio y ver la aplicación funcionando. Si querés acceder directamente por IP:3000, primero habilitá el puerto 3000 en el Firewall del Cloud Server.


Paso 3 — Instalar el certificado SSL

certbot --nginx -d tudominio.com -d www.tudominio.com
  • Cuando el sistema pregunta sobre la redirección HTTP → HTTPS, seleccioná la opción 2 y presioná Enter.

  • Al finalizar, el sitio queda protegido con HTTPS.


¿Ha quedado contestada tu pregunta?