A reverse proxy server is a type of proxy server that is deployed between clients and back-end/origin servers, for example, an HTTP server such as NGINX, Apache, etc.. or application servers written in Nodejs, Python, Java, Ruby, PHP, and many other programming languages.
Es una puerta de enlace o un servidor intermediario que toma una solicitud del cliente, la pasa a uno o más servidores de respaldo y posteriormente recupera la respuesta del servidor y la entrega de nuevo al cliente, haciéndolo parecer como si el contenido hubiera originado desde el servidor proxy inverso mismo.
Generalmente, un servidor proxy inverso es un proxy orientado hacia el interior que se utiliza como un ‘front-end’ para controlar y proteger el acceso a los servidores de respaldo en una red privada: típicamente se despliega detrás del firewall de red.
Ayuda a que los servidores de respaldo logren el anonimato para mejorar su seguridad. En la infraestructura de TI, un proxy inverso también puede funcionar como un firewall de aplicaciones, balanceador de carga, terminador de TLS, acelerador web (al cachear contenido estático y dinámico) y mucho más.
En este artículo, revisaremos los 10 mejores servidores proxy inversos de código abierto que puedes usar en un sistema Linux.
Tabla de Contenidos
1. HAProxy: (Balanceador de Carga TCP/HTTP)
HAProxy (HAProxy, que significa Proxy de Alta Disponibilidad), es un software de balanceo de carga y proxying gratuito, de código abierto, muy rápido, confiable y de primera categoría para aplicaciones basadas en TCP y HTTP, diseñado para alta disponibilidad.
HAProxy es un proxy inverso HTTP, un proxy TCP y normalizador, un terminador/iniciador/descargador de SSL/TLS, un proxy de caché, un descargador de compresión HTTP, un regulador de tráfico, un interruptor basado en contenido, una puerta de enlace FastCGI, y más. También proporciona protección contra DDoS y abuso de servicio.
Está alimentado por un motor de eventos dirigido por eventos, no bloqueante, que combina una capa de E/S muy rápida con un programador multinúcleo basado en prioridades que le permite manejar fácilmente decenas de miles de conexiones concurrentes.
Notablemente, HAProxy utiliza el protocolo PROXY para pasar la información de conexión del cliente a los servidores backend u origen para que una aplicación obtenga toda la información relevante.
Algunas de las características básicas de HAProxy incluyen el proxy, el soporte SSL, la monitorización de los estados de los servidores y su estado, alta disponibilidad, equilibrio de carga, persistencia (manteniendo a un visitante en el mismo servidor incluso en diversos eventos), conmutación de contenido, reescritura y redirección HTTP, protección del servidor, registro, estadísticas y mucho más.
2. NGINX – (Servidor Web HTTP y Proxy Inverso)
NGINX es un servidor HTTP y proxy inverso gratuito, de código abierto, de alto rendimiento y muy popular. También funciona como servidor proxy IMAP/POP3. NGINX es conocido por su alto rendimiento, estabilidad, rico conjunto de características, configuración simple y flexible y bajo consumo de recursos (especialmente huella de memoria pequeña).
Así como HAProxy, NGINX tiene una arquitectura orientada a eventos, por lo que no tiene problemas para manejar decenas de miles de conexiones concurrentes, ya que utiliza el protocolo PROXY de HAProxy.
NGINX admite el proxy inverso acelerado con almacenamiento en caché utilizando el módulo ngx_http_proxy_module, que permite pasar solicitudes a otro servidor a través de protocolos distintos de HTTP, como FastCGI, uwsgi, SCGI y Memcached.
Es importante destacar que admite el equilibrio de carga y la tolerancia a fallos, aspectos vitales de los sistemas informáticos distribuidos a gran escala. El módulo ngx_http_upstream_module permite definir grupos de servidores backend para distribuir las solicitudes provenientes de los clientes.
Esto hace que tus aplicaciones sean más robustas, disponibles y fiables, altamente escalables, con tiempo de respuesta y rendimiento. Además, en cuanto a seguridad, admite la terminación de SSL/TLS y muchas otras características de seguridad.
Artículos útiles sobre el servidor web Nginx que podrías querer leer:
3. Varnish – (Proxy de Caché Inverso)
Caché HTTP de Varnish (o Caché de Varnish o simplemente Varnish) es un software de proxy de caché inverso gratuito, de código abierto, de alto rendimiento y muy popular, conocido como acelerador de aplicaciones web, diseñado para mejorar el rendimiento de HTTP mediante el almacenamiento en caché en el lado del servidor.
Se despliega entre un cliente y un servidor web HTTP o servidor de aplicaciones; cada vez que un cliente solicita información o un recurso de un servidor web, Varnish almacena una copia de la información, por lo que la próxima vez que el cliente solicite la misma información, Varnish la servirá sin enviar una solicitud al servidor web, lo que reduce la carga en el servidor y, a su vez, acelera la entrega de contenido web.
Varnish utiliza un lenguaje de configuración flexible conocido como el Lenguaje de Configuración de Varnish (VLC), que entre otras cosas permite a los administradores del sistema configurar cómo deben procesarse las solicitudes entrantes, qué contenido debe servirse y desde dónde, y cómo deben alterarse la solicitud o la respuesta, y mucho más.
El barniz también es extensible: se puede ampliar utilizando Módulos de Barniz (VMODs) y los usuarios pueden escribir sus propios módulos o utilizar módulos proporcionados por la comunidad.
La principal limitación de Barniz es su falta de soporte para SSL/TLS. La única forma de habilitar HTTPS es desplegar un terminador o descargador de SSL/TLS como HAProxy o NGINX delante de él.
4. Træfɪk – (El Proxy de Aplicaciones Nativo de la Nube)
Træfɪk (pronunciado Traffic) es un proxy inverso HTTP y balanceador de carga gratuito, de código abierto, moderno y rápido para implementar microservicios que admite múltiples algoritmos de balanceo de carga.
Puede conectarse con varios proveedores (o mecanismos de descubrimiento de servicios o herramientas de orquestación) como Kubernetes, Docker, Etcd, Rest API, Mesos/Marathon, Swarm y Zookeper.
Su característica destacada es su capacidad para gestionar su configuración de forma automática y dinámica, descubriendo así la configuración adecuada para sus servicios. Lo hace escaneando su infraestructura para encontrar información relevante y descubriendo qué servicio atiende qué solicitud del mundo externo. Los proveedores indican a Træfɪk dónde se encuentran sus aplicaciones o microservicios.
Otras características de Træfɪk son el soporte para WebSockets, HTTP/2 y GRPC, recarga en caliente (actualiza continuamente su configuración sin reinicios), HTTPS utilizando certificados de Let’s Encrypt (soporte para certificados wildcard) y expone una API REST. También mantiene registros de acceso y proporciona métricas (Rest, Prometheus, Datadog, Statsd, InfluxDB).
Además, Træfɪk viene con una sencilla interfaz de usuario web basada en HTML utilizada para supervisar eventos. También admite interruptores de circuito, reintentos de solicitudes, límite de velocidad y autenticación básica.
5. Apache Traffic Server – (Servidor Proxy Inverso y Avanzado)
Anteriormente un producto comercial propiedad de Yahoo que luego fue transferido a la Fundación Apache, Apache Traffic Server es un servidor proxy avanzado y reverso gratuito, de código abierto y rápido.
El Servidor de Tráfico también funciona como un balanceador de carga y puede participar en jerarquías de caché flexibles. Se sabe que ha manejado más de 400 TB de tráfico al día en Yahoo.
Cuenta con un conjunto de opciones para mantener la conexión activa, filtrar o anonimizar solicitudes de contenido, y es extensible a través de una API que permite a los usuarios crear complementos personalizados para modificar encabezados HTTP, manejar solicitudes ESI o diseñar nuevos algoritmos de caché.
6. Squid – (Servidor Proxy HTTP de Caché y Reenvío)
Squid es un servidor proxy y demonio de caché web gratuito, de código abierto y bien conocido que admite varios protocolos como HTTP, HTTPS, FTP y más. Cuenta con un modo proxy inverso (acelerador httpd) que almacena en caché las solicitudes entrantes para los datos salientes.
Soporta opciones avanzadas de optimización de tráfico, control de acceso, autorización, instalaciones de registro y mucho más.
7. Pound – (Proxy inverso y balanceador de carga)
A Pound is another free and open-source, lightweight reverse proxy and load balancer and front-end for web servers. It is also an SSL terminator (that decrypts HTTPS requests from clients and sends them as plain HTTP to the back-end servers).
Un saneador HTTP/HTTPS (que verifica las solicitudes de forma correcta y acepta solo las bien formadas) y un servidor de conmutación por error.
8. Apache – (Servidor web HTTP)
Servidor HTTP Apache (también conocido como HTTPD), el servidor web más popular del mundo, también puede ser implementado y configurado para actuar como un proxy inverso.
Apache destaca en el enrutamiento de solicitudes de clientes a servidores backend, mejorando la seguridad, el balanceo de carga y optimizando el rendimiento de aplicaciones web. Al actuar como intermediario, Apache puede distribuir eficientemente el tráfico entrante a múltiples instancias de servidor, asegurando una alta disponibilidad y experiencias de usuario fluidas.
Sus opciones de configuración robustas y personalizables lo convierten en una opción destacada para organizaciones que buscan una solución confiable para sus necesidades de proxy inverso, ya sea para almacenamiento en caché de contenido o entrega de aplicaciones.
9. Skipper – (Enrutador HTTP y Proxy Inverso)
Skipper es un enrutador HTTP y proxy inverso de código abierto y gratuito para la composición de servicios, que incluye casos de uso como Ingreso de Kubernetes.
Está diseñado para manejar un número significativo de definiciones de rutas HTTP dinámicamente configuradas, superando las 800,000 rutas, con condiciones de búsqueda complejas y brindando flexibilidad para mejorar el flujo de solicitud con filtros.
Puede ser desplegada fácilmente tal cual, o puede ser extendida incorporando lógica personalizada de búsqueda, filtros y fuentes de configuración.
10 Caddy 2 – Servidor Rápido con HTTPS Automático
Caddy 2 es un servidor web y proxy inverso de código abierto conocido por su simplicidad y versatilidad, que ofrece una interfaz amigable para el usuario y HTTPS automático por defecto, lo que lo convierte en una opción accesible tanto para principiantes como para usuarios experimentados.
Caddy 2 está diseñado para manejar fácilmente el alojamiento web, HTTP/2, el equilibrio de carga y la intermediación, mejorando el rendimiento y la seguridad del sitio web. Su naturaleza de código abierto fomenta las contribuciones de la comunidad, y ha ganado popularidad por su facilidad de uso y características modernas en el mundo del alojamiento web y la gestión de servidores.
Conclusión
Eso es todo lo que teníamos para ti en esta guía. Para obtener más información sobre cada herramienta en esta lista, visita sus respectivos sitios web. No olvides compartir tus pensamientos con nosotros a través del formulario de comentarios a continuación.
Source:
https://www.tecmint.com/open-source-reverse-proxy-servers-for-linux/