Los 8 mejores servidores proxy inversos de código abierto para Linux


Un servidor proxy inverso es un tipo de servidor proxy que se implementa entre clientes y servidores back-end/de origen, por ejemplo, un servidor HTTP como NGINX, Apache, etc. o servidores de aplicaciones escritos en Nodejs, Python, Java, Ruby. , PHP y muchos otros lenguajes de programación.

Es una puerta de enlace o un servidor intermediario que toma una solicitud del cliente, la pasa a uno o más servidores back-end y, posteriormente, obtiene la respuesta del servidor y la devuelve al cliente, haciendo que parezca que el contenido se originó en el propio servidor proxy inverso.

Generalmente, un servidor proxy inverso es un proxy interno que se utiliza como "front-end" para controlar y proteger el acceso a los servidores back-end en una red privada: normalmente se implementa detrás del firewall de la red.

Ayuda a los servidores back-end a lograr el anonimato para mejorar su seguridad. En una infraestructura de TI, un proxy inverso también puede funcionar como firewall de aplicaciones, equilibrador de carga, terminador TLS, acelerador web (almacenando en caché contenido estático y dinámico) y mucho más.

En este artículo, revisaremos los 8 principales servidores proxy inversos de código abierto que puede usar en un sistema Linux.

1. HAProxy

HAProxy (HAProxy, que significa High Availability Proxy), un software de proxy y equilibrador de carga gratuito, de código abierto, muy rápido, confiable y de primera categoría para aplicaciones basadas en TCP y HTTP, creado para alta disponibilidad.

HAProxy es un proxy inverso HTTP, un proxy y normalizador TCP, un terminador/iniciador/descargador SSL/TLS, un proxy de almacenamiento en caché, un descargador de compresión HTTP, un regulador de tráfico, un conmutador basado en contenido, una puerta de enlace FastCGI y más. También es una protección contra DDoS y abuso del servicio.

Está impulsado por un motor sin bloqueo impulsado por eventos que combina una capa de E/S muy rápida con un programador de múltiples subprocesos basado en prioridades que le permite manejar fácilmente decenas de miles de conexiones simultáneas. En particular, HAProxy usa el protocolo PROXY para pasar la información de conexión del cliente a los servidores de origen o backend para que una aplicación obtenga toda la información relevante.

Algunas de las características básicas de HAProxy incluyen proxy, soporte SSL, monitoreo de los estados del servidor y su propio estado, alta disponibilidad, equilibrio de carga, adherencia (mantener a un visitante en el mismo servidor incluso en varios eventos), cambio de contenido, reescritura HTTP y redirección. protección del servidor, registro, estadísticas y mucho más.

2. NGINX

NGINX, 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 bien conocido por su alto rendimiento, estabilidad, rico conjunto de funciones, configuración simple y flexible y bajo consumo de recursos (en particular, pequeña huella de memoria).

Al igual que HAProxy, NGINX tiene una arquitectura impulsada por eventos, por lo que no tiene problemas para tratar con decenas de miles de conexiones simultáneas, ya que utiliza el protocolo PROXY de HAProxy.

NGINX admite el proxy inverso acelerado con almacenamiento en caché mediante 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 fallas, que son 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 sus aplicaciones sean más robustas, disponibles y confiables, altamente escalables, con tiempo de respuesta y rendimiento. Además, en lo que respecta a la seguridad, admite la terminación SSL/TLS y muchas otras funciones de seguridad.

Artículos útiles sobre el servidor web Nginx que le gustaría leer:

  • Cómo instalar el servidor web Nginx en Ubuntu 20.04
  • Cómo instalar Nginx en CentOS 8
  • Cómo habilitar la página de estado de NGINX

3. Caché HTTP de barniz

Varnish HTTP Cache (o Varnish Cache o simplemente Varnish) es un software de proxy inverso de almacenamiento en caché gratuito, de código abierto, de alto rendimiento y muy popular, más conocido como acelerador de aplicaciones web, diseñado para mejorar el rendimiento HTTP mediante el almacenamiento en caché del lado del servidor.

Se implementa entre un cliente y un servidor web HTTP o un 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 atenderá sin enviar una solicitud al servidor web reduciendo así 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 Varnish Configuration Language (VLC) que, entre otras cosas, permite a los administradores del sistema configurar cómo se deben procesar las solicitudes entrantes, qué contenido se debe servir y desde dónde, y cómo se debe modificar la solicitud o respuesta. , y mucho más.

El barniz también es extensible: se puede ampliar mediante módulos de barniz (VMOD) y los usuarios pueden escribir sus módulos personalizados o utilizar módulos proporcionados por la comunidad.

La principal limitación de Varnish es su falta de soporte para SSL/TLS. La única forma de habilitar HTTPS es implementar un terminador SSL/TLS o un descargador como HAProxy o NGINX delante de él.

4. Træfɪk

Træfɪk (tráfico pronunciado) es un balanceador de carga y proxy inverso HTTP gratuito, de código abierto, moderno y rápido para implementar microservicios que admiten múltiples algoritmos de balanceo de carga. Puede interactuar con varios proveedores (o mecanismos de descubrimiento de servicios o herramientas de orquestación) como Kubernates, Docker, Etcd, Rest API, Mesos/Marathon, Swarm y Zookeper.

Su característica adorable es su capacidad para administrar su configuración de forma automática y dinámica, descubriendo así la configuración correcta para sus servicios. Lo hace escaneando su infraestructura para encontrar información relevante y descubre qué servicio atiende qué solicitud del mundo externo. Los proveedores le dicen a Træfɪk dónde se encuentran sus aplicaciones o microservicios.

Las otras funciones de Træfɪk son compatibles con WebSockets, HTTP/2 y GRPC, y la recarga en caliente (actualiza continuamente su configuración sin reinicios), HTTPS usando certificados Let's Encrypt (compatibilidad con certificados comodín) 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 se envía con una sencilla interfaz de usuario web basada en HTML que se utiliza para vigilar los eventos. También admite disyuntores, solicitudes de reintento, limitación de velocidad y autenticación básica.

5. Servidor de tráfico Apache

Apache Traffic Server, anteriormente un producto comercial propiedad de Yahoo que luego fue entregado a la Fundación Apache, es un servidor proxy inverso, de código abierto y rápido de almacenamiento en caché.

Traffic Server también funciona como un equilibrador de carga y puede participar en jerarquías de caché flexibles. Se sabe que ha manejado más de 400 TB al día de tráfico en Yahoo.

Cuenta con un conjunto de mantenimiento, filtrado o anonimización de 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. Servidor proxy Squid

Squid es un servidor proxy gratuito, de código abierto y conocido y un demonio de caché web que admite varios protocolos como HTTP, HTTPS, FTP y más. Cuenta con un modo de proxy inverso (acelerador httpd) que almacena en caché las solicitudes entrantes de datos salientes.

Admite ricas opciones de optimización de tráfico, control de acceso, autorización, instalaciones de registro y mucho más.

7. libra

A Pound es otro proxy inverso y equilibrador de carga ligero y gratuito y de código abierto para servidores web. También es un terminador SSL (que descifra las solicitudes HTTPS de los clientes y las envía como HTTP simple a los servidores back-end), un desinfectante HTTP/HTTPS (que verifica las solicitudes de corrección y acepta solo las bien formadas) y un error -sobre servidor.

8. Servidor HTTP Apache

Por último, pero no menos importante, tenemos un servidor HTTP Apache (también conocido como HTTPD), el servidor web más popular del mundo. También se puede implementar y configurar para actuar como un proxy inverso.

Además, también puede pagar Skipper, el nuevo chico de la cuadra. Es un enrutador HTTP gratuito y de código abierto y un proxy inverso para la composición de servicios, incluidos casos de uso como Kubernetes Ingress.

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, consulte sus respectivos sitios web. No olvide compartir sus pensamientos con nosotros a través del formulario de comentarios a continuación.