ti-enxame.com

Balanceador de carga HTTP de software?

Agora só temos um servidor de back-end por site/serviço da web. Eu estaria interessado em ouvir as experiências das pessoas com vários aplicativos de balanceador de carga (algo que é executado no Linux).

O que você recomendaria?

19
Mark Renouf

De acordo com o episódio 27 do podcast stackoverflow , os caras Reddit realmente parecem gostar haproxy . Aqui está um breve tutorial mostrando HaProxy sendo usado com o EC2 da Amazon . Você pode encontrar muito mais informações no Web site HaProxy .

13
John Siracusa

A questão não fornece informações específicas sobre carga, características necessárias, etc, portanto, como tal resposta é, na melhor das hipóteses, adivinhar.

libra é uma boa escolha para sites menores/médios. Oferece suporte HTTPS e fácil configuração.

Haproxy pode dimensionar para saturar tubos Ethernet 10G e oferece limitação de conexão, ou seja, enviar apenas o número de solicitações simultâneas para cada servidor de back-end como você tem crianças apache/Ruby Rails instâncias para lidar.

NGINX é ótimo como um balanceador de carga Allound e servidor de arquivos estáticos. Ele pode realizar compactação HTTP, reescrita de URL e arquivo estático servindo enquanto estiver fazendo balanceamento de carga.

Apache está na série 2.2 um belo balanceador de carga muito bom. Pode fazer o mesmo que nginx, mas coloca uma carga maior no servidor do que Nginx. Vale a pena investigar se você já está familiarizado com o Apache e muito maduro.

Perlbal oferece fácil conexão limitando a hosts de backend, solicitações de multiplexação em conexões HTTP persistentes e fácil configuração, se você já estiver usando Perl.

Cache de verniz é um proxy http reverso, com suporte básico de balanceamento de carga. Não é um grande balanceador de carga, mas em algumas situações seu cache na memória da maioria dos objetos solicitados pode remover uma alta porcentagem do servidor de back-end hits e tem ótimo desempenho. ESI Inclui são potencialmente interessantes.

Eu não tenho 100% de certeza, mas fora do topo da minha cabeça perlbal e nginx oferecem algum suporte para alterar a configuração sem reiniciar o balanceador de carga. Para sites maiores, isso é crítico, e é uma das coisas que os bons aparelhos de balanceadores de carga comercial fazem bem.

Todos os itens acima são os balanceadores de carga do nível HTTP (Camada 7). Os balancecadores de carga de nível TCP/IP têm o potencial de atingir maior rendimento, mas são limitados de outras maneiras. O autor Haproxy escreveu uma visão geral e legível dos métodos e problemas de balanceamento de carga: http://1wt.eu/articles/2006_lb/

LVS é um balanceador de carga de nível TCP/IP amplamente utilizado. A maioria dos firewalls também pode fazer o balanceamento básico de carga no nível IP, por hash a solicitação de entrada durante uma gama de endereços IP de back-end - pelo menos PF e Cisco ASA e Juniper Netscreens do OpenBSD, podem fazer isso.

21
Jesper M
3
Daniel Silveira

haProxy funciona bem como lvs.

FWIW, WordPress.com usa NginX como seu balanceador/proxy.

3
Jauder Ho

Eu usei libra no passado. É rápido, simples e requer atenção mínima.

2
mryan1

Nós usamos lvs na produção. É gerenciado pela nossa equipe de operações com um conjunto de scripts complexos e malignos. Um sistema básico bastante inteligente anuncia dados de saúde e desempenho de nossos reservadores para permitir que o balanceador de carga estabeleça pesos de acordo.

Lvs, claro, dá-lhe um único ponto de falha - o balanceador de carga (há maneiras de configurá-los de forma redundante).

Eu pensei que isso era muito complicado de configurar, então eu escrevi Cluster Linux Fluffy que foi baseado vagamente em como o Windows NLB funciona (eu acho ... não tenho certeza de como isso funciona embora) e também inspirado por clusterip.

Nós não usamos em produção, mas fofo pode carregar um equilíbrio de um número razoável (5 pelo menos) de servidores sem ponto único de falha e nenhum nó de gerenciamento central etc.

2
MarkR

Se você decidir ir com o LVs, então eu também olharia para o Keepalived se você vai fazer sua camada de servidor de balanceamento de carga altamente disponível. Eu estava usando o batimento cardíaco/marcapasso com LVs por vários meses e descobri que é muito complicado e às vezes instável para uma simples camada HA LB.

1
Aaron Bush

Eu sou um fã massivo no ZXTM Multi-Layer Lbs de ZXTM - clique [~ #] aqui [~ # ~]

1
Chopper3