Encaminhamento de tráfego HTTP externo para várias máquinas dentro da minha rede

1

Isso é obviamente possível porque é o que todas as webfarms fazem, no entanto eu não sou um webfarm.

Eu tenho uma habilidade técnica muito boa, principalmente windows, mas ficaria feliz em configurar uma simples caixa linux para conseguir isso.

No momento, tenho um roteador com acesso à Internet, que permite o tráfego em uma máquina em várias portas. Isso funciona bem e eu posso executar vários sites em uma máquina, no entanto, eu gostaria de ser capaz de interceptar o tráfego e enviar para separar máquinas com base no nome de domínio.

Reporting.example.com => PC1
Demos.example.com => PC2
MySite.example.com => PC1
Three.example.com => PC3
(all domain obviously resolve to my single internet facing IP address).

Posso obter um roteador que faça isso (eu sei sobre o encaminhamento de porta etc, mas eles só funcionam em portas), posso configurar uma caixa intermediária linux / XP com um encaminhador? Existe uma solução fácil?

    
por Toby Allen 15.04.2012 / 14:08

2 respostas

3

Esta não é a única maneira ou a melhor maneira, mas é assim que eu faria isso. Corrija-me se eu não entendi algum fato em sua pergunta

  1. O roteador mantém o IP da WAN. Se o roteador permitir especificar o nome do host para o mapeamento de IP, você poderá tentar adicionar isso mapeando cada domínio para o IP interno de sua rede.

  2. Se o roteador não puder fazer isso, você poderá configurar um proxy reverso em um sistema para encaminhar o tráfego por domínio para os sistemas de back-end. Isso é útil, já que você pode usá-lo para o failover.

aqui está um exemplo de configuração vhost do apache como proxy reverso.

ServerName Demos.example.com
ProxyPreserveHost On
ProxyTimeout 5400
ProxyPass / http://LAN_IP1 max=20 ttl=5000 retry=300
ProxyPassReverse / http://LAN_IP1/

p.s. Você não precisa ter um servidor proxy reverso dedicado, você pode usar um dos sistemas existentes para fazer isso e isso pode servir um domínio localmente e excluir outros domínios. Esse sistema em particular deve ser aquele para o qual o seu roteador encaminha todo o tráfego da web.

    
por 15.04.2012 / 14:25
1

A solução da Vangels funcionou muito bem, esclareci aqui para qualquer outra pessoa.

Isso precisa ir no arquivo http.conf

<VirtualHost *:80> 
 ServerName Demos.example.com
 ProxyPreserveHost On
 ProxyTimeout 5400
 ProxyPass / http://LAN_IP1 max=20 ttl=5000 retry=300
 ProxyPassReverse / http://LAN_IP1/
</VirtualHost >

Você também precisa ativar os seguintes Módulos

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so
    
por 16.04.2012 / 23:37