Como crear una aplicación web (backend) con NodeJS + Nginx

instrucciones para Debian Stretch o Ubuntu posterior a 13.04

Aplicación web en <15 minutos

 

  1. Creamos el directorio para nuestra nueva aplicación y le asignamos permisos al usuario
$ sudo mkdir /var/www/minuevaapp.com
$ sudo cd /var/www/minuevaapp.com
$ sudo chmod 770 /var/www/minuevaapp.com
$ sudo chown www-data:www-data /var/www/minuevaapp.com 

 

2. Instalamos nodejs v10,  npm “node package manager” y también las dependencias

$ curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash -
$ sudo apt install -y nodejs
$ sudo apt install gcc g++ make
$ node --version

 

3. Creamos nuestra aplicación

$ vim app.js
const http = require('http');

const hostname = '127.0.0.1';
const port = 8081;

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(`El servidor se está ejecutando en http://${hostname}:${port}/`);
});

 

4. Lanzamos nuestra aplicación

$ nodejs app.js &

(nodejs lanzara nuestra aplicación como un standalone server en un puerto por defecto como 3000 por ejemplo)

 

FeedYourWeb - web design and nginx web server

5. Ahora instalamos nginx proxy server (alternativa al Apache)

$ sudo apt-get install nginx

6.  Configuramos nginx para que escuche en el dominio minuevaapp.com:80 y rediriga  al localhost:8081. (De esta manera no hará falta introducir puerto 8081 en la url)

$ vim /etc/nginx/sites_available/minuevaapp.com
upstream minuevaapp.com {
  server 127.0.0.1:8081;
}
server {
  listen 0.0.0.0:80;
  server_name minuevaapp.com;
  access_log /var/log/nginx/minuevaapp.com.access.log;
  error_log /var/log/nginx/minuevaapp.com.error.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://minuevaapp.com;
    proxy_redirect off;
  }
}

 

7. Activamos la nueva configuración y reiniciamos nginx

$ sudo ln -s /etc/nginx/sites-available/minuevaapp.com /etc/nginx/sites-enabled/minuevaapp.com
$ sudo service nginx restart

 

8. (opcional) Si no tenemos registrado aun el dominio real, siempre podemos emularlo editando el fichero hosts (en nuestro ordenador personal).  Solo hay que añadir una linea (al final) parecida a esta, donde 12.34.56.78 (hay que cambiar) seria la ip del servidor

 $ sudo ln -s /etc$ vim /etc/hosts
12.34.56.78 minuevaapp.com

Ya podemos ver nuestra aplicación desde el navegador y en el dominio que queremos

Aplicación web nodejs ejemplo
Aplicación web nodejs ejemplo

 

# # #

julio 24, 2018

¿En que podemos ayudarte?


Pide cita