Introducción #
Un servidor proxy puede describirse como un dispositivo o aplicación que actúa como intermediario para las solicitudes de clientes que buscan recursos en diversos servidores. En otras palabras, un servidor proxy actúa en nombre del cliente cuando se solicita el servicio, ocultando potencialmente el origen real de la solicitud.
El proceso consiste en que el cliente realiza la solicitud directamente al servidor proxy, en lugar de conectarse únicamente a un servidor físico que pueda proporcionar el recurso solicitado, como archivos o páginas web. Posteriormente, el servidor proxy evalúa dicha solicitud y desarrolla las transacciones de red necesarias. Esto permite simplificar y controlar la complejidad de la solicitud, además de ofrecer otras ventajas como seguridad, aceleración de contenido y privacidad. Los proxies se diseñan para encapsular y estructurar los sistemas distribuidos existentes. Algunos de los proxies de navegación web más utilizados son Squid , Privoxy y SwiperProxy.
En ocasiones, un servidor proxy no es suficiente para gestionar el número de usuarios concurrentes, o bien el propio proxy constituye un punto único de fallo que debe solucionarse; en esos casos, un ADC resulta totalmente necesario.
El siguiente artículo describe una forma de crear alta disponibilidad y escalabilidad para un servicio de proxy de navegación, en caso de que uno de los servidores Proxy falle entonces el balanceador de carga, implementado con Relioid Application Delivery Controller, detectará la falla y el proxy será deshabilitado del pool disponible, adicionalmente, el cliente será redirigido a otro proxy de navegación disponible sin afectar las conexiones de tráfico.
Arquitectura de red proxy #
Con la idea de que el lector comprenda mejor la configuración, queremos llegar al siguiente diagrama que describe la arquitectura.
Los distintos clientes (portátiles, ordenadores, móviles y tabletas) configuran el navegador para que apunte al proxy corporativo, por ejemplo, https://proxy.company.com:3128 . Todas las conexiones de los clientes al proxy de navegación web, ya sean HTTP o SSL , se basarán en TCP , por lo que se utilizará para crear nuestra granja de balanceo de carga.
La resolución de IP para proxy.company.com es una IP virtual ya configurada en el balanceador de carga. En el controlador de entrega de aplicaciones Relianoid, existe una granja de servidores sobre dicha IP virtual, por ejemplo, 192.168.103.34 y el puerto virtual 3128 en modo NAT para el protocolo TCP.
La granja está configurada con todos los servidores backend que conforman el grupo de proxies de navegación, en nuestro ejemplo 192.168.103.253 y 192.168.103.254 a través del puerto TCP 3128. Tan pronto como el cliente intenta conectarse al proxy configurado, el ADC recibirá la conexión y la redirigirá a uno de los proxies de navegación disponibles en el grupo, compartiendo los usuarios entre todos los servidores proxy backend disponibles.
Configuración de alta disponibilidad del proxy de navegación web #
La siguiente sección describe el procedimiento de configuración para crear una configuración adecuada para los servidores proxy de navegación de equilibrio de carga en el balanceador de carga Relianoid.
Comprobación del estado del proxy de navegación web #
En primer lugar, cree una verificación de estado para usarla en la granja de equilibrio de carga que crearemos en las siguientes líneas. El objetivo de esta nueva verificación de estado es verificar que el puerto TCP en los servidores proxy backend esté habilitado.
Vaya a la sección MONITORIZACIÓN > Farm guardian , cree un nuevo farmguardian con el nombre check_tcp_navigation_proxy y copie de check_tcp y realice algunos pequeños cambios en los tiempos de espera como se muestra a continuación:
En el campo Comando , agregue el indicador -t 5. Este es el tiempo de espera por servidor para responder a la conexión TCP del balanceador de carga. El campo Intervalo está configurado con un valor de 11, 5 segundos por servidor + 1 segundo adicional para evitar la recursión. Recomendamos usar la siguiente fórmula para establecer el valor óptimo de Intervalo .
(número de backends * segundos de tiempo de espera por backend (-t)) + 1
Servicio virtual de proxy de navegación web #
A continuación, cree una granja LSLB > L4xNAT , por ejemplo, con el nombre navigation_proxy , incluyendo la IP virtual y el puerto virtual como se indica en el diagrama anterior. Una vez creada, vaya a editar en modo avanzado y asegúrese de que el tipo de protocolo esté configurado en TCP y el tipo de NAT en modo NAT.
Para configurar el comportamiento del servicio virtual, vaya a la pestaña Servicios y configure el algoritmo de balanceo de carga en Peso (valor predeterminado). Adapte este valor al más apropiado para su entorno y el comportamiento deseado.
Luego, en la misma sección, vaya a la tabla Backends y agregue los servidores proxy de navegación web reales que administrarán las conexiones de los usuarios.
Por último, seleccione la comprobación de estado ya creada en el paso anterior, denominada check_tcp_navigation_proxy, para verificar que el puerto TCP de backend ya esté abierto.
Ahora, el servicio virtual con equilibrio de carga se puede probar antes de configurar los clientes.
Configuración de clientes #
El último paso consiste en configurar los ajustes del proxy en el navegador web del cliente, apuntando a la IP virtual y al puerto virtual utilizados en el balanceador de carga, o bien introducir la IP virtual en el DNS cooperativo y utilizar un nombre en su lugar en los clientes (en nuestro ejemplo, proxy.example.com apunta a la IP virtual 192.168.103.34 ).
¡Finalmente, disfrute de su proxy de navegación web con carga equilibrada y alta disponibilidad!



