LinuxParty
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 de un 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 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 la infraestructura de TI, un proxy inverso también puede funcionar como firewall de aplicaciones, equilibrador de carga, terminador TLS, acelerador web (al almacenar en caché contenido estático y dinámico ) y mucho más.
En este artículo, revisaremos los 10 principales servidores proxy inversos de código abierto que puede usar en un sistema Linux.
1. HAProxy – (Equilibrador de carga TCP/HTTP)
HAProxy ( HAProxy, que significa High Availability Proxy ), es un software de proxy y equilibrador de carga gratuito, de código abierto, muy rápido, confiable y de primer nivel 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 de servicios.
Está impulsado por un motor sin bloqueo impulsado por eventos que combina una capa de E/S muy rápida con un programador multiproceso basado en prioridades que le permite manejar fácilmente decenas de miles de conexiones simultáneas.
En particular, 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 proxy, soporte SSL, monitoreo de los estados del servidor y su estado, alta disponibilidad, equilibrio de carga, rigidez (mantener a un visitante en el mismo servidor incluso en varios eventos), cambio de contenido, reescritura y redirección HTTP, servidor. protección, registro, estadísticas y mucho más.
2. NGINX – (HTTP y servidor web 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 bien conocido por su alto rendimiento, estabilidad, rico conjunto de funciones, configuración simple y flexible y bajo consumo de recursos (particularmente su pequeña huella de memoria).
Podría interesarte:
- Configurar NGINX como proxy inverso: paso a paso
- Incrementar el rendimiento de su Web usando Nginx como Proxy con Apache
Al igual que HAProxy, NGINX tiene una arquitectura basada en eventos, por lo que no tiene problemas para manejar 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é 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, 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 cuanto a la seguridad, admite la terminación SSL/TLS y muchas otras funciones de seguridad.
Artículos útiles sobre el servidor web Nginx que quizás le interese leer:
3. Varnish – (Proxy de almacenamiento en caché inverso)
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 de 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 entregará sin enviar una solicitud al servidor web, reduciendo así la carga en el servidor web. servidor y, a su vez, acelerar 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, 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 utilizando 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 o descargador SSL/TLS como HAProxy o NGINX delante de él.
4. Træfɪk – (El proxy de aplicación nativa de la nube)
Træfɪk (pronunciado Traffic ) es un equilibrador de carga y proxy inverso HTTP gratuito, de código abierto, moderno y rápido para implementar microservicios que admite múltiples algoritmos de equilibrio de carga.
Puede interactuar 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 adorable es su capacidad para administrar su configuración de forma automática y dinámica, descubriendo así la configuración adecuada para sus servicios. Para ello, escanea 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 características de Træfɪk son compatibles con WebSockets, HTTP/2 y GRPC, 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 viene con una sencilla interfaz de usuario web basada en HTML que se utiliza para controlar los eventos. También admite disyuntores, solicitudes de reintento, limitación de velocidad y autenticación básica.
5. Servidor de tráfico Apache – (Servidor proxy inverso y directo)
Apache Traffic Server, que anteriormente era un producto comercial propiedad de Yahoo y que luego fue entregado a la Fundación Apache, es un servidor proxy inverso y directo de caché rápido, gratuito y de código abierto.
Traffic Server también funciona como equilibrador de carga y puede participar en jerarquías de caché flexibles. Se sabe que ha manejado más de 400 TB de tráfico diario en Yahoo.
Cuenta con un conjunto de solicitudes de mantenimiento, filtrado o anonimización 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 – (Proxy HTTP de almacenamiento en caché y reenvío)
Squid es un servidor proxy y un demonio de caché web gratuito, de código abierto y conocido 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 opciones completas de optimización del tráfico, control de acceso, autorización, funciones de registro y mucho más.
7. Pound – (Proxy inverso y equilibrador de carga)
A Pound es otro proxy inverso, equilibrador de carga y front-end ligero, 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 la exactitud de las solicitudes y acepta solo las que están bien formadas) y un servidor de conmutación por error.
8. Apache – (Servidor web HTTP)
El servidor Apache HTTP (también conocido como HTTPD ), el servidor web más popular del mundo, también se puede implementar y configurar para que actúe como un proxy inverso.
Apache se destaca en el enrutamiento de solicitudes de clientes a servidores backend, mejorando la seguridad, el equilibrio de carga y optimizando el rendimiento de las aplicaciones web. Al actuar como intermediario, Apache puede distribuir de manera eficiente el tráfico entrante a múltiples instancias de servidor, garantizando una alta disponibilidad y una experiencia de usuario perfecta.
Sus opciones de configuración sólidas y personalizables lo convierten en la mejor opción para las organizaciones que buscan una solución confiable para las 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 un proxy inverso gratuito y de código abierto para la composición de servicios, incluidos casos de uso como Kubernetes Ingress.
Está diseñado para gestionar una cantidad sustancial de definiciones de rutas HTTP configuradas dinámicamente, superando las 800.000 rutas, presentando condiciones de búsqueda complejas y ofreciendo flexibilidad para mejorar el flujo de solicitudes con filtros.
Se puede implementar fácilmente tal como está o se puede ampliar incorporando búsquedas personalizadas, lógica de filtro y fuentes de configuración.
10 Caddy 2 – Servidor rápido con HTTPS automático
Caddy 2 es un servidor web de código abierto y proxy inverso reconocido por su simplicidad y versatilidad, que ofrece una interfaz fácil de usar y HTTPS automático de forma predeterminada, lo que lo convierte en una opción accesible tanto para principiantes como para usuarios experimentados.
Caddy 2 está diseñado para manejar sin esfuerzo alojamiento web, HTTP/2, equilibrio de carga y proxy, 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 funciones modernas en el mundo del alojamiento web y la administración de servidores.
Conclusión
Eso es todo lo que teníamos para usted en esta guía. Para obtener más información sobre cada herramienta de esta lista, consulte sus respectivos sitios web. No olvide compartir sus opiniones con nosotros a través del formulario de comentarios a continuación.
-
Internet
- El director de inteligencia artificial de Microsoft afirma que la inteligencia artificial conversacional reemplazará a los navegadores web
- Cómo usar una VPN en Linux y por qué deberías hacerlo
- La muerte lenta del hipervínculo
- Cómo cambiar dirección IP (modo gráfico), por qué querría hacerlo y cuándo no debería hacerlo
- 10 comandos "IP" útiles para configurar interfaces de red
- Cómo configurar conexiones IP de red usando 'nmcli' en Linux
- Configuración de una IP Estática en una Tarjeta de Red en Linux.
- ¿Migrar a la nube? Marque esta lista de verificación
- Nuevo estándar de Internet L4S: el plan silencioso para hacer que Internet se sienta más rápido
- Nextcloud y Roundcube se Fusionan para Impulsar la Descentralización en la Productividad en la Nube
- Los 10 mejores servidores proxy inversos de código abierto para Linux
- Una guía para principiantes para crear conexiones (Bonding) y puentes de red (Bridging) en Linux
- Conectar dos redes Locales alejadas creando de un Puente Transparente
- Crear un puente de red transparente "bridge" para conectar dos redes locales remotas
- Crear un Puente de Red o Bridge