Um loadbalancer (hw) pode verificar os códigos de status HTTP?

3

Atualmente, estamos desenvolvendo vários sites usando dois servidores front-end da web (usando apache e tomcat / jboss) com um balanceador de carga à frente deles. Desde que eu sou um programador, não um sysadmin, só posso adivinhar o que é capaz de um balanceador de carga de hardware decente. Eu queria saber se um balanceador de carga de hardware pode verificar códigos de status HTTP, portanto, o tráfego seria redirecionado para apenas um servidor se o outro estiver inativo para manutenção (que agora envia um código de erro HTTP 503).

Obrigado!

Ben

    
por Ben 28.08.2009 / 15:21

3 respostas

7

Sim, praticamente todos os balanceadores de carga farão isso. A maioria dos balanceadores de carga também vai além, e deixa um servidor HTTP morto fora de serviço se:

  • apenas expira ou não responde ao TCP / IP
  • não responde com HTTP válido dentro de um tempo limite definido, ou seja, o soquete TCP está conectado, mas nenhum HTTP ou HTTP envia um 200 OK, mas não responde às OPÇÕES HTTP etc.
  • se uma página de status específica não contiver uma sequência de texto predefinida específica / não corresponder a um hash MD5 predefinido. Isso é muito útil para verificar se a conexão com o banco de dados está ativa (ao programar uma página simples que lê alguns dados do banco de dados e os exibe).

Editar: Além disso, bons balanceadores de carga têm uma maneira fácil de configurar um servidor no modo de manutenção, ou seja, o balanceador de carga parará de enviar novas solicitações para esse servidor e mostrará na IU quando o servidor pára de ter tráfego. Então você pode executar livremente a manutenção necessária no servidor, antes de colocá-lo novamente em serviço.

Além disso, a maioria dos balanceadores de carga tem um conceito de servidor de emergência, ou seja, se todos os servidores HTTP estiverem inoperantes, todo o tráfego será enviado para um servidor de emergência em sua LAN, que pode fornecer uma estática manutenção, volte mais tarde "página.

Ponto do Coiote faz com que dispositivos de balanceamento de carga de baixo custo sejam IMHO. Existem muitos outros fornecedores de balanceadores de carga de baixo custo; Barracuda é um exemplo. 'Low-end' não é negativo neste contexto, é apenas que o mercado é dividido em dois:

  • Fornecedores 'low-end', que normalmente cobram no máximo US $ 20000 pelos seus principais produtos, e vendem diretamente e por meio de pequenos revendedores.
  • 'fornecedores empresariais' como F5, Cisco, Foundry, etc., que podem cobrar muito mais e usar um modelo de vendas de marca premium.

Se o OP não tiver habilidades internas de sysadmin, a compra de um appliance de baixa manutenção faz muito sentido. Se você está disposto e é capaz de configurar um servidor Unix, então dê uma olhada neste postar . Se você está no Microsoft Windows, então o Roteiro de Solicitação de Aplicativo da Microsoft 1 ou 2 (beta) pode ser uma boa solução (I não os conheço tão bem).

    
por 28.08.2009 / 17:58
1

O Apache / tomcat certamente pode - consultar a documentação do "fail_on_status".

    
por 28.08.2009 / 15:43
1

Balanceadores de carga BigIP podem fazer isso. Mas você não precisa ter um grande hardware LB para ter um bom desempenho. Confira nginx e verniz. O verniz foi escrito especificamente como um balanceador de carga de cache e é altamente configurável. link

    
por 28.08.2009 / 15:47