Links

Node.JS + Nginx

Primeros pasos para configurar tu Cloud Server con Node.JS + Nginx

Ingresar a tu Cloud Server

  1. 1.
    Ingresa MiCuenta y dirígete a "Mis Servicios" -> "Cloud & IaaS" -> "Gestionar" para acceder a la configuración de tu Cloud Server.
2. Ve a "Software y Accesos" y allí encontrarás los datos de conexión para acceder vía SSH a tu Cloud. Puedes ingresar desde la consola web o desde tu aplicación de preferencia.

Configuración Nginx

  1. 1.
    Dirigite al directorio de configuración de Nginx
cd /etc/nginx/sites-available
2. Crea el vhost para el dominio que vas a utilizar para tu aplicación (en este caso utilizaremos como ejemplo technicaltest.ml)
nano technicaltest.ml
El mismo debe contener el siguiente código (recuerda reemplazar technicaltest.ml por tu dominio)
server {
server_name technicaltest.ml;
root /var/www/technicaltest.ml;
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;
}
}
3. Crea el enlace simbólico para el vhost (recuerda reemplazar technicaltest.ml por tu dominio)
cd etc/nginx/sites-enabled/
ln -s /etc/nginx/sites-available/technicaltest.ml technicaltest.ml
4. Ahora debes probar Nginx para corroborar que lo anterior funcione
nginx -t
Si funciona, debe mostrar el siguiente mensaje
5. Corroborado el funcionamiento, debes reiniciar Nginx
service nginx restart
Por último puedes comprobar el funcionamiento de Nginx
service nginx status

Crear una aplicación en Node

Una vez configurado tu dominio en Nginx, debes crear la aplicación que será utilizada con Node.
  1. 1.
    En el directorio Root, creamos la aplicación
cd /root
nano testapp.js
Dentro de testapp.js copia el siguiente código adaptado de la documentación oficial de Node.JS
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}/`);
});
3. Ahora debes detener la aplicación que se encuentra corriendo por defecto
pm2 stop app.js
4. Por último, debes ejecutar tu aplicación con el servicio PM2
pm2 start testapp.js
Si deseas ingresar a tu aplicación de la forma ipcloud:3000 primero debes agregar una excepción en el firewall ya que por seguridad el puerto 3000 viene bloqueado por defecto.
Una vez realizado estos pasos, podrás ver, ingresando a tu dominio, la aplicación que creaste.
Como puedes ver, aún no hay certificado SSL instalado por lo que el dominio aparece como "No seguro".

Instalar certificado SSL

Instalar un certificado SSL es necesario para brindar la mayor seguridad a tu sitio.
  1. 1.
    En la consola debes ingresar el siguiente comando (recuerda reemplazar technicaltest.ml por tu dominio)
certbot --nginx -d technicaltest.ml -d www.technicaltest.ml
2. En la siguiente consulta debes seleccionar la opción "2" y presionar "Enter"
¡Listo! Una vez finalizada la instalación del certificado verás el siguiente mensaje, y tu sitio ya estará protegido.