Software http equilibrador de carga?

19

En este momento, solo tenemos un servidor de fondo por sitio / servicio web. Me interesaría escuchar las experiencias de las personas con varias aplicaciones de equilibrador de carga (algo que se ejecuta en Linux).

¿Qué recomendarías?

Mark Renouf
fuente

Respuestas:

13

Según el episodio 27 del podcast StackOverflow , a los chicos de Reddit realmente les gusta HAProxy . Aquí hay un breve tutorial que muestra el uso de HAProxy con EC2 de Amazon . Puede encontrar mucha más información en el sitio web de HAProxy .

John Siracusa
fuente
3
Uso HAProxy en varios servidores de producción y me encanta. Es fácil de configurar e incluso tiene una interfaz web simple para verificar su estado y estadísticas en tiempo real. Se puede encontrar un screencast que me ayudó a configurar mi primera instancia de HAProxz en el [Blog de señal versus ruido] [1] [1]: 37signals.com/svn/posts/1073-nuts-bolts-haproxy
Wes Oldenbeuving
Olvidé el aspecto de manejabilidad. Esto suena muy bien.
Mark Renouf el
21

La pregunta no proporciona información específica sobre la carga, las características necesarias, etc., por lo que cualquier respuesta es, en el mejor de los casos, una suposición.

Libra es una buena opción para sitios más pequeños / medianos. Ofrece soporte HTTPS y fácil configuración.

HAproxy puede escalar para saturar las tuberías Ethernet de 10G y ofrece limitación de conexión, es decir, enviar solo la cantidad de solicitudes simultáneas a cada servidor de fondo, ya que tiene que manejar las instancias de Apache children / Ruby on Rails.

nginx es excelente como un equilibrador de carga completo y un servidor de archivos estático. Puede realizar compresión HTTP, reescritura de URL y publicación de archivos estáticos mientras realiza el equilibrio de carga.

Apache es en la serie 2.2 un balanceador de carga bastante bueno también. Puede hacer lo mismo que nginx, pero coloca una carga mayor en el servidor que nginx. Vale la pena investigar si ya estás familiarizado con Apache y eres muy maduro.

Perlbal ofrece una conexión fácil que limita a los hosts de back-end, solicitudes de multiplexación a través de conexiones HTTP persistentes y una configuración fácil si ya está usando Perl.

Varnish cache es un proxy HTTP inverso, con soporte básico de equilibrio de carga. No es un gran equilibrador de carga, pero en algunas situaciones el almacenamiento en caché en memoria de la mayoría de los objetos solicitados puede eliminar un alto porcentaje de los golpes del servidor de fondo, y tiene un gran rendimiento. ESI incluye son potencialmente interesantes.

No estoy 100% seguro, pero fuera de mi cabeza Perlbal y nginx ofrecen algo de soporte para cambiar la configuración sin reiniciar el equilibrador de carga. Para sitios más grandes, esto es crítico, y es una de las cosas que hacen bien los buenos dispositivos comerciales de balanceo de carga.

Todos los anteriores son equilibradores de carga de nivel HTTP (capa 7). Los equilibradores de carga de nivel TCP / IP tienen el potencial de alcanzar un mayor rendimiento, pero están limitados de otras maneras. El autor de HAProxy ha escrito una buena descripción legible de los métodos y problemas de equilibrio de carga: http://1wt.eu/articles/2006_lb/

LVS es un equilibrador de carga de nivel TCP / IP ampliamente utilizado. La mayoría de los cortafuegos también pueden hacer un equilibrio de carga básico a nivel de IP, al dividir la solicitud entrante en un rango de direcciones IP de back-end, al menos PF de OpenBSD y Cisco ASA y Juniper Netscreens pueden hacer esto.

Jesper M
fuente
3

haproxy funciona bien al igual que LVS.

FWIW, wordpress.com usa nginx como su equilibrador / proxy.

Jauder Ho
fuente
2

Utilizamos LVS en producción. Nuestro equipo de operaciones lo gestiona con un conjunto de scripts complejos y malvados. Un sistema personalizado bastante inteligente anuncia datos de salud y rendimiento de nuestros servidores reales para permitir que el equilibrador de carga establezca los pesos en consecuencia.

LVS, por supuesto, le brinda un único punto de falla: el equilibrador de carga (hay formas de configurarlos de forma redundante).

Pensé que esto era demasiado complicado de configurar, así que escribí Fluffy Linux Cluster, que se basaba libremente en cómo funciona Windows NLB (creo ... aunque no estoy seguro de cómo funciona) y también inspirado en CLUSTERIP.

No lo usamos en producción, pero Fluffy puede equilibrar la carga de un número razonable (5 al menos) de servidores sin un solo punto de falla y sin un nodo de administración central, etc.

MarkR
fuente
Hmm: LVS, scripts malvados, sistemas a medida bastante inteligentes. ¡Su configuración es exactamente como la nuestra!
Tom Anderson
2

He usado Pound en el pasado. Es rápido, simple y requiere una atención mínima.

mryan1
fuente
1

Soy un gran fanático de los LB multicapa ZXTM de Zeus: haga clic AQUÍ

Chopper3
fuente
1

Si decide usar LVS, también buscaría en Keepalived si va a hacer que su capa de servidor de equilibrio de carga esté altamente disponible. Había estado usando Heartbeat / Pacemaker con LVS durante varios meses y descubrí que era demasiado complicado y, a veces, inestable para una capa HA LB simple.

Aaron Bush
fuente