GNU/Linux >> Tutoriales Linux >  >> Linux

Proxy inverso con Nginx:una guía de configuración paso a paso

Este tutorial paso a paso le mostrará cómo puede configurar fácilmente un proxy inverso con Nginx para mejorar la seguridad y el rendimiento.

Una de las herramientas de proxy inverso más populares en este momento es Nginx. Aunque Nginx en sí mismo es un servidor web, hace un excelente trabajo como proxy inverso.

¿Qué es un proxy inverso?

Un proxy inverso es un servidor que se encuentra entre las aplicaciones internas y los clientes externos, reenviando las solicitudes de los clientes al servidor apropiado.

El servicio de proxy inverso actúa como un front-end, maneja todas las solicitudes de los clientes entrantes y las distribuye a la web, la base de datos u otros servidores back-end.

El uso de Nginx como proxy inverso le brinda varios beneficios adicionales:

  • Equilibrio de carga – Nginx puede realizar el balanceo de carga para distribuir las solicitudes de los clientes a través de servidores proxy, mejorando el rendimiento, la escalabilidad y la confiabilidad.
  • Seguridad mejorada – Con un proxy inverso, los clientes no tendrán información sobre nuestros servidores back-end, por lo que no hay forma de que ningún cliente malicioso pueda acceder a ellos directamente para explotar cualquier vulnerabilidad. Desde el punto de vista del cliente, esto hace que parezca que todo proviene de un solo lugar.
  • Mejor rendimiento – Con Nginx como proxy inverso, puede almacenar en caché las versiones renderizadas previamente de las páginas para acelerar los tiempos de carga de la página. Funciona almacenando en caché el contenido recibido de las respuestas de los servidores proxy y usándolo para responder a los clientes sin contactar al servidor proxy para obtener el mismo contenido cada vez.
  • Rescisión de SSL – Nginx puede actuar como punto final SSL para las conexiones con los clientes. Manejará y descifrará las conexiones SSL entrantes y cifrará las respuestas del servidor proxy.

Cómo Configurar un proxy inverso con Nginx

1. Instalando Nginx

Nginx es el conjunto de servidores web más popular implementado en Internet. Puede funcionar como un servidor proxy inverso dirigiendo el tráfico web a servidores específicos.

Déjame mostrarte cómo instalar Nginx en varias distribuciones de Linux.

Para instalar Nginx en Debian, Ubuntu, Linux Mint, Kali y otros derivados de Debian o Ubuntu, ejecute los siguientes comandos:

sudo apt update
sudo apt install nginx

En Fedora, CentOS, Red Hat y otros derivados de Fedora o Red Hat, ejecute los siguientes comandos:

sudo dnf upgrade
sudo dnf install nginx

Para instalar Nginx en Arch Linux, Manjaro y otros derivados de Arch, ejecuta los siguientes comandos:

sudo pacman -Syu
sudo pacman -S nginx

Una vez completada la instalación, puede verificar que Nginx esté instalado correctamente comprobando la versión del software. Introduzca lo siguiente:

nginx -v
nginx version: nginx/1.18.0 (Ubuntu)

2. Configuración de Nginx

Hemos instalado el sitio principal en example.com nombre de dominio en el mismo servidor que ejecuta nuestro Nginx. Sin embargo, nuestro sitio de blog de WordPress está instalado en blog.example.com subdominio en un servidor diferente con dirección IP 127.0.1.10 .

Necesitamos configurar un proxy inverso con Nginx para las solicitudes de proxy para blog.example.com subdominio para que todas las solicitudes se reenvíen a 127.0.1.10 . Para hacerlo, siga los pasos que se muestran a continuación.

1. Deshabilite el host virtual Nginx preconfigurado predeterminado:

unlink /etc/nginx/sites-enabled/default

2. Ingrese al directorio /etc/nginx/sites-available y cree un archivo de configuración de proxy inverso.

cd /etc/nginx/sites-available
sudo vim example.conf

Pegue la siguiente configuración de Nginx.

server {
        listen 80;
        server_name example.com www.example.com;

        location / {
                try_files $uri $uri/ /index.php?$query_string;
        }
}

server {
        listen 80;
        server_name blog.example.com;

        location / {
                proxy_pass http://127.0.1.10:80;
        }
}

Como puede ver, podría continuar ejecutando example.com en la misma instancia de Nginx, pero Nginx redirigirá todas las conexiones entrantes para blog.example.com en el puerto 80 al 127.0.1.10 servidor, escuchando en el puerto 80 .

3. Guarde el archivo y luego actívelo creando un enlace simbólico:

sudo ln -s /etc/nginx/sites-available/example.conf /etc/nginx/sites-enabled/

4. Pruebe Nginx en busca de errores de configuración:

sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

5. Si no hay errores, reinicie Nginx para que los cambios surtan efecto:

sudo systemctl restart nginx

Inicie un navegador web y vaya a la URL de su blog de WordPress. Serás redirigido a través de Nginx a 127.0.1.10 , alojando su blog de WordPress.

Enhorabuena, ha configurado correctamente Nginx para que funcione como proxy inverso. Ahora puede dirigir el tráfico que se supone que debe ir al servidor de destino al servidor proxy inverso, que terminará en el destino correcto.

Puede obtener más información sobre todas las directivas de proxy inverso en el índice detallado de directivas de Nginx.

Conclusión

Ahora sabe cómo configurar un proxy inverso con Nginx. Como puede ver, la configuración del proxy inverso de Nginx es un proceso simple. Pero, por supuesto, hay muchas formas de instalarlo y configurarlo, que dependen completamente de sus requisitos.


Linux
  1. Configurar Nginx como proxy inverso en Ubuntu 20.04 - ¿Guía paso a paso?

  2. Configure WSO2 con NGINX Reverse Proxy para URL personalizadas

  3. Cómo instalar Odoo 10 en CentOS 7 con Nginx como proxy inverso

  4. Cómo instalar Flectra en CentOS 8 con Nginx como proxy inverso

  5. Cómo instalar Flectra en Ubuntu 20.04 con Nginx como proxy inverso

Cómo instalar GlassFish con Nginx como proxy inverso en Debian 10

Cómo instalar WildFly con Nginx como proxy inverso en Debian 10

Cómo configurar Nginx como proxy inverso para Apache en Debian 11

Cómo configurar el proxy inverso de Nginx

Cómo configurar Nginx como proxy inverso para Apache en Ubuntu 18.04 VPS

Cómo configurar Tomcat con Nginx como proxy inverso en Ubuntu 18.04