Como carregar adequadamente servidores fastcgi separados

3

Estamos executando uma implantação maior com vários servidores executando aplicativos Django sob o apache2 e o mod_wsgi.

Estamos considerando mudar para apache2 + fastcgi e mover processos fcgi para separar a "camada" do servidor de aplicativos.

Minha pergunta é: como fazer o balanceamento de carga adequado entre esses vários servidores de back-end? Estou mais preocupado com a capacidade de adicionar e remover servidores on-the-fly.

    
por Almad 25.02.2011 / 17:16

1 resposta

1

O que você está propondo é viável; parece que você está essencialmente recriando a arquitetura que eins.de usou para a instalação do Ruby On Rails por um tempo.

Mas, dito isso, não seria minha primeira escolha. Por que se preocupar com o balanceamento de carga e adicionar / remover servidores em FastCGI, quando o HTTP é tão onipresente quanto é? Qual benefício você acredita que obterá usando FastCGI em vez de HTTP?

Gostaria apenas de usar um balanceador de carga HTTP / HTTPS como primeiro servidor e, em seguida, falar HTTP para a camada do servidor de aplicativos. E os servidores de aplicativos podem usar o Apache2 + mod_wsgi + Django ou gunicorn + Django com base em sua preferência.

Existem muitos bons balanceadores de carga HTTP disponíveis. Pesquise através deste site. Algumas opções comuns de código aberto são Perlbal, nginx, HAProxy & Apache 2.2 (em nenhuma ordem particular). Há também aparelhos comerciais como Coyote Point, Loadbalancer.org ou serviços como o Amazon ELB para EC2.

I am most concerned about ability to add and remove servers on-the-fly.

Esse é um bom ponto, tanto em deixar os servidores de aplicativos fora de serviço como em recarregar completamente a configuração do balanceador de carga imediatamente. Fora do topo da minha cabeça Perlbal, nginx e HAProxy podem recarregar seu arquivo de configuração durante a execução; mas eu não verifiquei isso agora.

    
por 25.02.2011 / 17:32