Pergunta

O meu site está crescendo. Eu preciso conjuntos de recursos de partição para diferentes grupos de servidores em vez de ter todos os recursos executados em uma única cópia do servidor. Eu tenho 8 servidores idênticos em uma configuração de balanceamento de carga de rede do Windows.

O problema é: eu preciso manter o espaço URL do mesmo. O que seria uma solução viável? Eu não quero começar novos domínios para os conjuntos de recursos. Estou pensando algum tipo de proxy reverso com algum URL base reescrever / capacidades de roteamento (?!?). Quaisquer recomendações em termos de software ou hardware? Isto vai substituir a configuração WNLB como ele não tem as capacidades que eu preciso.

Foi útil?

Solução

De fato, há várias soluções para implementar balanceamento de carga:

  1. DNS Round-Robin
  2. balanceamento de carga DNS (com lbnamed)
  3. Proxy Round-Robin
  4. Hardware / TCP Round-Robin

Eu entendi 1) e 2) não são uma opção aqui, então ... se você tiver necessidades realmente alto desempenho dinheiro e , ir para 4). Else, ir para 3).

Para Proxy Round-Robin, mais uma vez, várias soluções são possíveis: Apache mod_rewrite , Apache mod_proxy , Squid (e certamente muitos outros que eu não sei)

  • Para balacing carga "burro", há um exemplo no Apache mod_rewrite do Guia Reescrevendo URL (veja Proxy throughput Round-Robin seção).

  • Apache mod_proxy pode atuar como proxy para os clientes se conectam à internet, mas é normalmente usado como proxy reverso para redirecionar uma url para outro servidor . Ele não tem nenhuma funcionalidade cache (mas pode ser usado com mod_cache e mod_rewrite ...).

  • Squid é um proxy cache e é geralmente usado para os clientes se conectam à internet. Mas também pode ser usado como proxy reverso e ser configurado para armazenar em cache os pedidos e para acelerar a entrega de conteúdo.

Como você pode ver, a escolha de uma delas depende do que e como você deseja proxy. No seu caso, eu consideraria executando o Apache mod_proxy ou Squid se você quiser cache no Linux (se é uma opção).

Em relação ao hardware, eu não sou um especialista, mas eu acho que um "pequeno" para "médio" servidor dedicado deve ser suficiente. Só não se esqueça todos os pedidos passarão por esta máquina para seu dimensionamento depende altamente seu tráfego que parece decente. Isso pode exigir alguma escavação com dados da vida real.

Outras dicas

Se você tem 8 servidores, sugiro usar 7 deles para compartilhar a carga de trabalho e usando um servidor de front-end para agir como um proxy.

O servidor de front-end poderia correr Apache e utilização mod_proxy delegar cada solicitação HTTP para um dos 7 servidores back-end. Você pode definir mod_proxy para delegar o trabalho com base na URL de entrada, se você precisa para que você poderia, por exemplo, ter um servidor servindo de vídeo, dois servindo entradas blogs eo restante fazendo qualquer outra coisa.

O servidor de front-end seria extremamente leve: rodando Apache e pouco mais. Você também pode armazenar em cache o conteúdo estático no servidor frontal usando mod_cache do Squid ou Apache para que os pedidos de imagens, js, css e outros conteúdos estáticos nunca vai bater o seu back-end 7 servidor uma vez que tenha sido armazenada em cache.

EDIT: Eu só fui a ler o comentário de Pascal e ele está sugerindo a mesma coisa. Vou mod ele +1

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top