Como configurar um proxy reverso de failover automático para dois servidores master Icecast idênticos?

2

Estou tentando fazer uma dobra simples de tudo o dobro com um proxy reverso na frente para um servidor mestre de streaming Icecast (ou seja, não estou falando de relés Icecast aqui). Então, três VMs:

  • 2 VMs Icecast independentes idênticas (cada uma com uma fonte de música MPD local e um front-end local do nginx para cabeçalhos corretos )
  • um único balanceador de carga / proxy reverso nginx VM.

A minha pergunta é - como configuro o proxy reverso para fazer o failover automático no caso de uma das VMs do Icecast ficar inativa com o mínimo de interrupção para o cliente de fluxo?

Ilustração:

                             /--- [ local nginx A <-> icecast master A <- mpd A]
-> [nginx reverse proxy] ---<
                             \--- [ local nginx B <-> icecast master B <- mpd B]

Eu tentei pela primeira vez este tutorial simples para configurar um nginx de proxy reverso após o qual eu poderia ouvir o fluxo abrindo a VM nginx.

upstream backend  {
  ip_hash; # try to send the same clients to the same servers
  server 1.2.3.4;
  server 1.2.3.5 max_fails=1  fail_timeout=15s;
}
server {
  location / {
    proxy_pass  http://backend;
  }
}

Quando eu paro o serviço Icecast na VM Icecast que é o endpoint final, o cliente não faz failover para o bom Icecast. Nem mesmo depois de uma atualização por algum motivo. Eu tentei experimentar com várias opções de ip_hash , max_fails , fail_timeout , diferentes propriedades de cabeçalho de resposta, tamanhos de buffer etc. que outros sites mencionado , mas nada funcionou. Eu me sinto um pouco como se eu estivesse pescando no escuro aqui e que deveria haver alguma solução óbvia para o failover de streaming, dado o número de estações de rádio populares por aí. Algum conselho sobre a melhor forma de configurar isso ou alguns bons recursos? Desejo redirecionamentos 302 ou um passe de proxy real?

Estou aberto a sugestões baseadas no HAProxy, se esse for o melhor caminho a seguir.

    
por metakermit 26.11.2015 / 16:39

1 resposta

2

Como você descobriu, reverter o proxy Icecast não é uma boa ideia. Não há benefício real, enquanto há várias desvantagens e você ainda tem um ponto único de falha: seu frontend.

O Icecast é um servidor muito estável e confiável e as estratégias típicas empregadas para servir páginas da Web em HTTP não se aplicam necessariamente a ele.

Seu esforço seria provavelmente melhor gasto para conhecer o Icecast, sua configuração e limitações. Dito isso, se configurado corretamente, o Icecast saturará facilmente uma conexão de 1 GBit / s e atenderá bem mais de 20.000 ouvintes simultâneos. Os testes realmente indicam que ele vai muito além disso, mas pode haver casos difíceis.

Depois disso, pergunte-se: Qual problema em termos de disponibilidade eu estou realmente tentando resolver e a resposta para o problema provavelmente não será 'proxy reverso'.

    
por 26.11.2015 / 17:11