NGINX como proxy transparente

nginx como proxy transparente

En este artículo, exploraremos cómo configurar NGINX como proxy transparente en un servidor Debian. Esta configuración permite que NGINX actúe como intermediario entre los clientes y el servidor Apache, redirigiendo las solicitudes sin que los usuarios tengan que realizar configuraciones adicionales en sus navegadores. A lo largo del proceso, aprenderás qué es un proxy, cómo funciona un proxy transparente y cómo implementarlo.

¿Qué es un Proxy?

Un proxy es un servidor o aplicación que actúa como intermediario entre un cliente y otro servidor. Este se utiliza para mejorar la seguridad, la velocidad y la privacidad de las conexiones. Existen varios tipos de proxy:

  • Proxy de acceso a Internet: Proporciona acceso a Internet a los dispositivos de una red.
  • Proxy de caché: Almacena copias de recursos para accesos más rápidos en el futuro.
  • Proxy de anonimato: Oculta la dirección IP del cliente para proteger su identidad.
  • Proxy inverso: Gestiona las solicitudes de los clientes y las redirige a un servidor web.
  • Proxy transparente: Redirige las solicitudes sin requerir configuraciones adicionales por parte del cliente.

¿Qué es un Proxy Transparente?

Un proxy transparente es un tipo de proxy que intercepta las conexiones entrantes y las redirige automáticamente al servidor de destino. Es ideal para entornos donde no se desea configurar manualmente los dispositivos cliente. Sin embargo, no proporciona anonimato, ya que el administrador del proxy puede seguir viendo la información del cliente.

Un uso típico de los proxies transparentes es en redes empresariales para filtrar tráfico o acelerar el acceso a ciertos sitios web.


Situación Inicial

Imagina que tienes un servidor Apache configurado en un sistema Debian, que responde al dominio enguillem.com. Actualmente, este servidor funciona correctamente utilizando el puerto 80, con la siguiente configuración básica en el archivo enguillem.conf:

<VirtualHost *:80>
    ServerName enguillem.com
    ServerAlias www.enguillem.com
    DocumentRoot /home/guillem/public_html/enguillem.com/www
</VirtualHost>

Nuestro objetivo será introducir NGINX como proxy transparente, redirigiendo las solicitudes entrantes al puerto 80 hacia Apache, que ahora escuchará en el puerto 8080.


Paso 1: Modificar Apache para Escuchar en el Puerto 8080

Editar el archivo ports.conf: Cambia la configuración para que Apache escuche en el puerto 8080.

Listen 8080

Actualizar el archivo enguillem.conf: Modifica el virtual host para reflejar el nuevo puerto.

<VirtualHost *:8080>
    ServerName enguillem.com
    ServerAlias www.enguillem.com
    DocumentRoot /home/guillem/public_html/enguillem.com/www
</VirtualHost>

Reiniciar apache

sudo systemctl restart apache2

Ahora, podrás acceder a tu sitio utilizando la URL http://enguillem.com:8080. Sin embargo, queremos que los usuarios accedan sin especificar el puerto, y aquí es donde entra NGINX.


Paso 2: Instalar NGINX en Debian

Instala NGINX con el siguiente comando:

sudo apt install nginx

Paso 3: Configurar NGINX como Proxy Transparente

Crear un archivo de configuración para NGINX: Navega al directorio /etc/nginx/sites-available y crea un archivo llamado enguillem.com con el siguiente contenido:

server {
    listen 80;
    listen [::]:80;

    server_name enguillem.com www.enguillem.com;

    location / {
        proxy_pass http://localhost:8080;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

Habilitar la configuración: Crea un enlace simbólico en el directorio /etc/nginx/sites-enabled.

sudo ln -s /etc/nginx/sites-available/enguillem.com /etc/nginx/sites-enabled/

Reiniciar nginx

sudo systemctl restart nginx

Con esto, NGINX comenzará a actuar como proxy, redirigiendo las solicitudes entrantes al puerto 8080 donde Apache está sirviendo el contenido.


Conclusión

Has configurado con éxito NGINX como proxy transparente en tu servidor Debian. Este enfoque permite una transición fluida entre NGINX y Apache, mejorando el manejo de las solicitudes mientras los usuarios siguen accediendo a tu sitio de manera habitual. Si este tutorial te ha resultado útil, ¡no olvides compartirlo, dejar un comentario y suscribirte para más contenido como este!

Comentarios

No comments found.