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 marco de JavaScript gratuito de código abierto, ligero, escalable y eficiente construido en el motor de JavaScript V8 de Chrome, y utiliza un modelo de E/S sin bloqueo controlado por eventos. Nodejs está ahora en todas partes y se ha vuelto muy popular para desarrollar software desde sitios web, aplicaciones web hasta aplicaciones de red y más.

Nginx. es un servidor HTTP de código abierto y 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 aplicaciones Nodejs.

Lea también. La guía definitiva para proteger, fortalecer y mejorar el rendimiento del servidor web Nginx

Nota. si su sistema ya se está ejecutando con Nodejs. y NPM. y tiene su aplicación se ejecuta en un puerto determinado, vaya directamente al Paso 4.

Paso 1: Instalar Nodejs y NPM en Linux

La última versión de Node.js. y NPM. están disponibles para instalar desde el repositorio oficial de distribuciones binarias de NodeSource Enterprise Linux, Fedora, Debian y Ubuntu, que se mantiene en el sitio web de Nodejs y deberá agregar en su sistema para poder instalar los últimos paquetes de Nodejs y NPM como se muestra.

En Debian/Ubuntu ———-Instale Node.js v11.x———- $ curl-sL https://deb.nodesource.com/setup_11.x | sudo-E bash-$ sudo apt-get install-y nodejs ———-Instalar Node.js v10.x———- $ curl-sL https://deb.nodesource.com/setup_10.x | sudo-E bash-$ sudo apt-get install-y nodejs En CentOS/RHEL y Fedora ———-Instalar Node.js v11.x———- $ curl-sL https://rpm.nodesource.com/setup_11.x | bash-———-Instala Node.js v10.x———- $ curl-sL https://rpm.nodesource.com/setup_10.x | bash-

Paso 2: Crear una aplicación Nodejs

freestar.config.enabled_slots.push

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/server.js

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

const http = require (‘http’); const hostname = ‘ 192.168.43.31. ; puerto constante = 5000. const server = http.createServer ((req, res) => res.statusCode = 200; res.setHeader (‘Content-Type’, ‘text/plain’); res.end (‘¡La aplicación Sysmon está funcionando! \ n ‘);); server.listen (puerto, nombre de host, () => console.log (`Servidor ejecutándose en http://$ nombre de host: $ puerto/`););

Guarde el archivo y salga.

Ahora inicie su aplicación de nodo usando el siguiente comando (presione Ctrl + x para terminarla).

$ sudo node/var/www/html/sysmon/server.js O $ sudo node/var/www/html/sysmon/server.js & # inícielo 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.

Acceder a la aplicación de nodo desde el navegador  Acceder a la aplicación de nodo desde el navegador Acceder a la aplicación de nodo desde el navegador

Paso 3: Instale Nginx Reverse Proxy en Linux

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

En Debian/Ubuntu

Cree un archivo llamado /etc/apt/sources.list.d/nginx.list. y agregue las siguientes líneas.

deb http://nginx.org/packages/ubuntu/bionic nginx deb-src http://nginx.org/packages/ubuntu/bionic nginx

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

$ wget–quiet http://nginx.org/keys/nginx_signing.key && sudo apt-key add nginx_signing.key $ sudo apt update $ sudo apt install nginx En CentOS/RHEL y Fedora

Cree un archivo llamado /etc/yum.repos.d/nginx.repo. y pegue una de las siguientes configuraciones.

CentOS [nginx] name = nginx repo baseurl = http://nginx.org/packages/centos/$releasever/$basearch/gpgcheck = 0 enabled = 1 RHEL [nginx] name = nginx repo baseurl = http://nginx.org/packages/rhel/$releasever/$basearch/gpgcheck = 0 enabled = 1

Nota. debido a las diferencias entre cómo CentOS y RHEL, es necesario reemplazar $ releasever con 6. (para 6.x. o 7. (para 7.x. , dependiendo de la versión de su sistema operativo.

A continuación, agregue la clave 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.key # yum install nginx

Después de instalar con éxito Nginx. inícielo, habilítelo para que se inicie automáticamente al arrancar el sistema y verifique si está activo y en ejecución.

———-En Debian/Ubuntu———- $ sudo systemctl status nginx $ sudo systemctl enable nginx $ sudo systemctl estado n ginx ———-En CentOS/RHEL———- # systemctl status nginx # systemctl enable nginx # systemctl status nginx

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

———-En Debian/Ubuntu———- $ sudo ufw allow 80/tcp $ sudo ufw allow 443/tcp $ sudo ufw allow 5000/tcp $ sudo ufw reload ———-En CentOS/RHEL———- # firewall-cmd–permanent–add-port = 80/tcp # firewall-cmd–permanent–add-port = 443/tcp # firewall-cmd–permanent–add-port = 5000/tcp # firewall-cmd–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 Node en /etc/nginx/conf.d/ como se muestra.

$ sudo vim/etc/nginx/conf.d/sysmon.conf

Copie y pega la siguiente configuración (cambia 192.168.43.31. con la IP de tu servidor y tecmint.lan. con tu nombre de dominio).

server listen 80; nombre_servidor sysmon.tecmint.lan. ubicación/proxy_set_header X-Fordered-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 restart nginx OR # systemctl restart nginx

Paso 5: Acceda a la aplicación Nodejs a través del navegador web

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

http://sysmon.tecmint.lan

Para que su nombre de dominio de prueba funcione, debe configurar el DNS local usando el archivo /etc/hosts. abrirlo y agregar el línea de abajo (recuerde cambiar 192.168.43.31. con la IP de su servidor y tecmint.lan. con su nombre de administrador como antes).

192.168.43.31 sysmon. tecmint.lan  Acceder a la aplicación de nodo a través de Nginx Reverse Proxy  Aplicación de nodo de acceso a través del proxy inverso de Nginx Acceder a la aplicación Node a través de Nginx Reverse Proxy

¡Eso es todo! En este artículo, mostramos cómo configurar Nginx como un proxy inverso para aplicaciones Nodejs. Utilice el formulario de comentarios a continuación para hacer preguntas o compartir sus opiniones sobre este artículo.