Encaminhar todo o tráfego em uma porta específica, dependendo do domínio para outra porta

1

Imagine que eu tenha 10 domínios diferentes. Todos esses domínios têm um registro A para um único endereço IP. Existem dez serviços diferentes hospedados neste IP. Vamos supor que eles escutem da porta :80 para :90 . A porta padrão do protocolo usado é :80 e não posso forçar os usuários a anexar um :82 ao nome do domínio.

E aqui está o problema: eu quero encaminhar internamente o :80 dependendo do nome de domínio usado.

  • domain0.com :80 - > :80
  • domain1.com :80 - > :81
  • domain2.com :80 - > :82
  • domain3.com :80 - > :83
  • ...

Eu pesquisei e encontrei iptables . É isso que estou procurando?

    
por buschtoens 05.03.2012 / 20:45

2 respostas

3

Geralmente isso não pode ser feito assim. Quando o cliente se conecta via TCP e / ou UDP, o servidor não tem informações sobre qual domínio o cliente usou para solicitar o endereço IP do servidor.

Como você está mencionando a porta 80, pode estar falando sobre o tráfego HTTP. Nesse caso, essa distinção pode ser feita, pois o protocolo HTTP também transfere o nome de domínio selecionado. Você pode usar um servidor HTTP como o Apache e configurar um host virtual para cada domínio que atua como um proxy reverso e encaminha o tráfego para a porta correta. Uma configuração como essa poderia ser algo assim:

<VirtualHost *:80>
    ServerName domain1.com

    ProxyPass / http://server-ip:81/
</VirtualHost>

Para que isso funcione, os módulos proxy e proxy_http precisam ser ativados.

    
por 05.03.2012 / 20:58
3

Você pode fazer exatamente o que perguntar usando um proxy ou um balanceador de carga, como o haproxy. Mas se você quiser apenas hospedar vários sites no mesmo IP, usar cabeçalhos seria o método padrão.

Se você estiver tentando hospedar vários sites SSL no mesmo IP, nenhum desses métodos funcionará porque o cabeçalho e o URL estão criptografados.

    
por 05.03.2012 / 21:08