No momento, 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 roda no Linux).
O que você recomendaria?
web-applications
web-services
load-balancing
Mark Renouf
fonte
fonte
A pergunta não fornece informações específicas sobre carga, recursos necessários, etc., portanto, qualquer resposta é, na melhor das hipóteses, um palpite.
A libra é uma boa opção para sites menores / médios. Oferece suporte a HTTPS e fácil configuração.
O HAproxy pode ser dimensionado para saturar pipes Ethernet 10G e oferece limitação de conexão, ou seja, enviando apenas o número de solicitações simultâneas a cada servidor de back-end, pois você deve lidar com instâncias Apache children / Ruby on Rails.
O nginx é excelente como um balanceador de carga geral e um servidor de arquivos estático. Ele pode executar compactação HTTP, reescrita de URL e veiculação de arquivo estático enquanto faz o balanceamento de carga.
O Apache também é um bom balanceador de carga na série 2.2. Pode fazer o mesmo que o nginx, mas coloca uma carga maior no servidor que o nginx. Vale muito a pena investigar se você já conhece o Apache e é muito maduro.
O Perlbal oferece fácil conexão limitando a hosts de back-end, solicitações multiplexadas através de conexões HTTP persistentes e fácil configuração se você já estiver usando o Perl.
O cache de verniz é um proxy HTTP reverso, com suporte básico ao balanceamento de carga. Não é um ótimo balanceador de carga, mas, em algumas situações, o armazenamento em cache na memória da maioria dos objetos solicitados pode remover uma alta porcentagem de ocorrências do servidor de back-end e possui ótimo desempenho. Inclui ESI são potencialmente interessantes.
Não tenho 100% de certeza, mas, de cabeça para baixo, 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 dispositivos comerciais de balanceador de carga fazem bem.
Todos os itens acima são balanceadores de carga no nível HTTP (camada 7). Os balanceadores de carga no nível TCP / IP têm o potencial de atingir maior taxa de transferência, mas são limitados de outras maneiras. O autor do HAProxy escreveu uma visão geral boa e legível dos métodos e problemas de balanceamento de carga: http://1wt.eu/articles/2006_lb/
O LVS é um balanceador de carga no nível TCP / IP amplamente utilizado. A maioria dos firewalls também pode fazer o balanceamento de carga básico no nível do IP, agrupando a solicitação recebida em vários endereços IP de back-end - pelo menos o PF do OpenBSD e o Cisco ASA e Juniper Netscreens podem fazer isso.
fonte
fonte
O haproxy funciona bem como o LVS.
No FWIW, o wordpress.com usa o nginx como seu balanceador / proxy.
fonte
Usamos LVS na produção. É gerenciado por nossa equipe de operações com um conjunto de scripts complexos e ruins. Um sistema sob medida bastante inteligente anuncia dados de integridade e desempenho de nossos servidores reais para permitir que o balanceador de carga defina pesos de acordo.
É claro que o LVS fornece um único ponto de falha - o balanceador de carga (existem maneiras de configurá-los de forma redundante).
Eu pensei que isso era muito complicado de configurar, então escrevi o Fluffy Linux Cluster, que se baseava pouco no funcionamento do Windows NLB (acho ... não tenho certeza de como isso funciona) e também foi inspirado pelo CLUSTERIP.
Nós não o usamos na produção, mas o Fluffy pode balancear a carga de um número razoável (5 pelo menos) de servidores sem um único ponto de falha e nenhum nó de gerenciamento central etc.
fonte
Eu usei Pound no passado. É rápido, simples e requer atenção mínima.
fonte
Sou um grande fã dos LBs multi-camada ZXTM da Zeus - clique AQUI
fonte
Se você optar por usar o LVS, também analisarei o Keepalived se você deseja tornar sua camada de servidor de balanceamento de carga altamente disponível. Eu estava usando o Heartbeat / Pacemaker com LVS há vários meses e achei muito complicado e às vezes instável para uma camada simples de HA LB.
fonte