Roteamento dinâmico de subdomínio

5

Eu fiz essa pergunta no stackoverflow, mas recebi poucas visualizações: link

Talvez seja mais aplicável a essa multidão. Aqui está novamente por conveniência:

Eu tenho uma plataforma onde um usuário pode criar um novo site usando um subdomínio. Haverá milhares deles, por exemplo, abc.mydomain.com, def.mydomain.com. Espero que se formos bem sucedidos centenas de milhares.

Eu preciso rotear esses domínios para um IP diferente para apontar para um servidor de aplicativos específico. Eu tenho esse mapeamento em um banco de dados agora mesmo.

Quais são as melhores práticas e tecnologias recomendadas aqui?

Eu vejo algumas opções:

  1. Possua configuração de DNS com uma entrada CNAME curinga para que todas as solicitações sejam enviadas a um único IP, onde talvez duas máquinas que usam heartbeat (para failover) saibam como pesquisar o IP no banco de dados e façam um redirecionamento http para o aplicativo apropriado servidor. Isso parece desajeitado e lento para mim.
  2. Executar meu próprio servidor DNS que pode ser gerenciado de forma programável, de modo que, quando um novo site é criado, uma entrada DNS seja adicionada. Também transferimos sites para diferentes servidores de aplicativos, por isso eu precisaria poder atualizar as entradas de DNS quase em tempo real. Pensamentos alguém?

Obrigado.

Update2 : configurei o DNS wildcard externo apontando para um servidor web HAProxy cujo trabalho é rotear solicitações para servidores de back-end. O mapeamento é armazenado em nosso servidor PowerDNS interno. Pergunta agora é como obter o servidor HAProxy (ou outro) para usar o valor do DNS interno e não algum arquivo de configuração ou lista de acesso? -

Atualização: Com base em algumas sugestões abaixo, parece que o (s) servidor (es) de proxy reverso é o caminho a seguir. Como vou reequilibrar o mapeamento de servidor de domínio > eles precisam funcionar instantaneamente e o TTL em uma solução de DNS pode ser um problema. Quaisquer recomendações sobre o software a ser usado considerando esses dados de domínio > IP são armazenados em um banco de dados, e eu precisarei que ele seja de alto desempenho?

    
por Nader 18.02.2010 / 23:23

4 respostas

2

Devido a sua exigência de failover em tempo real entre servidores, não posso recomendar uma solução baseada em DNS - muitos clientes simplesmente não identificam as alterações.

Todos esses servidores estarão em um site? Um front-end resiliente "proxy reverso" com acesso ao cliente - > A tabela de mapeamento do sever parece ser mais fácil.

    
por 19.02.2010 / 10:50
0

Eu usaria a segunda solução usando PowerDNS e backend de pipe , você apenas tem que escrever um software que seja capaz de ler consultas e escrever respostas de stdin / stdout através de um bonito simples protocolo

    
por 19.02.2010 / 00:00
0

Se eu entendi diretamente, você terá muitos:

subdomínios.dominio.com

Que tal uma configuração de servidor proxy?

No DNS, você configura um curinga para * .domain.com e aponta isso para o seu servidor proxy reverso.

Em seu proxy reverso, execute seu próprio DNS ou use um arquivo host para mapear a solicitação para o servidor de back-end apropriado.

Então o caminho seria: cliente - > proxy reverso --- > servidor de back-end

    
por 19.02.2010 / 02:40
0

O hipache parece exatamente o que você precisa. você pode adicionar e remover subdomínios dinamicamente, mas apenas adicionando e removendo entradas de redis:

link

    
por 29.08.2014 / 07:42