Cómo configurar Nginx como proxy inverso para la aplicación NodeJS
- 2238
- 468
- Alejandro Duran
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
.
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.lanAplicació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.
- « Cómo iniciar en modo de rescate o modo de emergencia en Ubuntu 20.04/18.04
- Cómo instalar PHP 8.0 en Ubuntu 20.04/18.04 »