Cómo configurar Nginx como proxy inverso para la aplicación NodeJS

Cómo configurar Nginx como proxy inverso para la aplicación NodeJS

Nodejs es un código abierto gratuito, marco JavaScript liviano, escalable y eficiente basado en el motor JavaScript V8 de Chrome, y utiliza un modelo de E/S de eventos y no bloqueo de eventos. NodeJS ahora está en todas partes, y se ha vuelto tan popular para desarrollar software desde sitios web, aplicaciones web hasta aplicaciones de red y más.

Nginx es un código abierto, servidor HTTP de alto rendimiento, equilibrador de carga y software de proxy inverso. Tiene un lenguaje de configuración sencillo que facilita la configuración. En este artículo, mostraremos cómo configurar NGINX como un proxy inverso para las aplicaciones NodeJS.

Leer también: La guía final para asegurar, endurecer y mejorar el rendimiento del servidor web NGINX

Nota: Si su sistema ya se ejecuta con Nodejs y Npm, Y haga que su aplicación se ejecute en un puerto determinado, vaya directamente a Etapa 4.

Paso 1: Instalación de NodeJS y NPM en Linux

La última versión de Nodo.js y Npm está disponible para instalar desde el repositorio oficial de distribuciones binarias de Nodesource Enterprise Linux, Fedora, Debian y Ubuntu, que mantiene el sitio web de NodeJS y deberá agregarlo a su sistema para poder instalar los últimos paquetes NodeJ y NPM como se muestra como se muestra como se muestra.

En Debian/Ubuntu

---------- Instalar nodo.JS V11.X ---------- $ curl -sl https: // Deb.nodource.com/setup_11.x | sudo -e bash -$ sudo apt -get install -y nodejs ---------- Instalar nodo.JS V10.X ---------- $ curl -sl https: // Deb.nodource.com/setup_10.x | sudo -e bash -$ sudo apt -get install -y nodejs 

En Centos/Rhel y Fedora

---------- Instalar nodo.JS V11.X ---------- $ curl -sl https: // rpm.nodource.com/setup_11.x | intento - ---------- Instalar nodo.JS V10.X ---------- $ curl -sl https: // rpm.nodource.com/setup_10.x | intento - 

Paso 2: Creación de una aplicación NodeJS

Para fines de demostración, crearemos una aplicación de muestra llamada "Sysmon", que se ejecutará en el puerto 5000 como se muestra.

$ sudo mkdir -p/var/www/html/sysmon $ sudo vim/var/www/html/sysmon/servidor.js 

Copie y pegue el siguiente código en el servidor.js archivo (reemplazar 192.168.43.31 con su servidor IP).

const http = require ('http'); const hostname = '192.168.43.31'; Const Port = 5000; const servidor = http.createServer ((req, res) => res.statuscode = 200; resonancia.Setheader ('Content-type', 'Text/Plain'); resonancia.End ('La aplicación Sysmon está en funcionamiento!\norte'); ); servidor.escuchar (puerto, hostname, () => consola.log ('servidor ejecutándose en http: // $ hostname: $ puerto/'); ); 

Guarda el archivo y cierra.

Ahora inicie su aplicación de nodo usando el siguiente comando (presione CTRL+X para terminarlo).

$ sudo node/var/www/html/sysmon/servidor.js o $ sudo nodo/var/www/html/sysmon/servidor.JS & #Starlo en segundo plano para liberar su terminal 

Ahora abra un navegador y acceda a su aplicación en la URL http: // 198.168.43.31: 5000.

Aplicación de nodo de acceso desde el navegador

Paso 3: Instale Nginx Reverse Proxy en Linux

Instalaremos la última versión de Nginx del repositorio oficial, como se muestra a continuación.

En Debian/Ubuntu

Crea un archivo llamado /etc/apt/fuentes.lista.d/nginx.lista y agréguelo las siguientes líneas.

Deb http: // nginx.org/paquetes/ubuntu/bionic nginx deb-src http: // nginx.org/paquetes/ubuntu/bionic nginx 

A continuación, agregue la clave de firma del repositorio, actualice el índice de paquetes de su sistema e instale el paquete NGINX de la siguiente manera.

$ wget -quiet http: // nginx.org/keys/nginx_signing.key && sudo apt-key agregar nginx_signing.clave $ sudo apt actualización $ sudo apt install nginx 

En Centos/Rhel y Fedora

Crea un archivo llamado /etc/yum.repositar.d/nginx.repositorio y pegar una de las configuraciones a continuación.

Cento
[nginx] name = nginx repo baseUrl = http: // nginx.org/paquetes/centos/$ Releasever/ $ basearch/ gpgcheck = 0 habilitado = 1
Rhel
[nginx] name = nginx repo baseUrl = http: // nginx.org/paquetes/rhel/$ Releasever/ $ basearch/ gpgcheck = 0 habilitado = 1

Nota: Debido a las diferencias entre CentOS y RHEL, es necesario reemplazar $ Releasever con cualquiera 6 (para 6.X) o 7 (para 7.X), dependiendo de su versión del sistema operativo.

A continuación, agregue la tecla de firma del repositorio e instale el paquete NGINX como se muestra.

# wget -quiet http: // nginx.org/keys/nginx_signing.key && rpm --import nginx_signing.clave # yum instalar nginx 

Después de instalar con éxito Nginx, Iniciarlo, habilitarlo para inicio automático en el arranque del sistema y verifique si está en funcionamiento.

---------- En Debian/Ubuntu ---------- $ sudo systemCtl status nginx $ sudo systemctl habilita nginx $ sudo systemctl status nginx ---------- En CentOS/RHEL ---------- # systemCTL status nginx # systemCTL Habilitar nginx # systemctl status nginx 

Si está ejecutando un firewall de sistema, debe abrir el puerto 80 (http), 443 (https) y 5000 (aplicación de nodo), en el que el servidor web escucha las solicitudes de conexión del cliente.

---------- En Debian/Ubuntu ---------- $ sudo UFW Permitir 80/TCP $ sudo UFW Permitir 443/TCP $ sudo UFW Permitir 5000/TCP $ sudo UFW RELOAD ---------- En CentOS/RHEL ---------- # firewall-cmd --Permanent --Add-Port = 80/TCP # Firewall-CMD --Permanent --add-puer = 443/tcp # firewall-cmd --Permanent --add-puer = 5000/tcp # firewall -Cmd -Re -Reload 

Paso 4: Configure Nginx como proxy inverso para la aplicación NodeJS

Ahora cree un archivo de configuración de bloque de servidor para su aplicación de nodo en /etc/nginx/conf.d/ como se muestra.

$ sudo vim/etc/nginx/conf.d/sysmon.confusión 

Copie y pegue la siguiente configuración (cambie 192.168.43.31 con la IP de su servidor y tecmenta.lan con tu nombre de dominio).

servidor escuchar 80; nombre del servidor sysmon.tecmenta.lan; Ubicación / proxy_set_header X-Forwarded-For $ Remote_addr; proxy_set_header host $ http_host; proxy_pass http: // 192.168.43.31: 5000;  

Guarde los cambios y salga del archivo.

Finalmente, reinicie el servicio NGINX para efectuar los cambios recientes.

$ sudo systemctl reiniciar nginx o # systemctl reiniciar nginx 

Paso 5: Aplicación NodeJS de acceso a través del navegador web

Ahora debería poder acceder a su aplicación de nodo sin proporcionar el puerto en el que está escuchando, en la URL: esta es una forma muy conveniente para que los usuarios accedan a él.

http: // sysmon.tecmenta.lan 

Para que funcione su nombre de dominio de prueba, debe configurar DNS local utilizando el /etc/huéspedes Archivo, abra y agregue la línea a continuación (recuerde cambiar 192.168.43.31 con la IP de su servidor y tecmenta.lan con tu nombre de doamin como antes).

192.168.43.31 Sysmon.tecmenta.lan 
Aplicación de nodo de acceso a través de Nginx Reverse Proxy

Eso es todo! En este artículo, mostramos cómo configurar NGINX como un proxy inverso para las aplicaciones NodeJS. Use el formulario de comentarios a continuación para hacer cualquier pregunta o compartir sus pensamientos sobre este artículo.