Como faço para hospedar vários servidores Web físicos por trás de um único endereço IP?

11

Estou executando vários servidores da web em minha casa, cada um deles conectado ao meu roteador.

Servidor A Servidor B Servidor C

Eu atualmente só posso usar um servidor desde que meu IP (xx.xxx.xx.xx) porta 80 está apontando para o servidor A. No entanto, alguns domínios apontam para o servidor A, alguns para B, etc.

Com meu endereço IP único, como eu aponto para cada servidor? Por exemplo, meus registros A (host) apontam apenas para o meu endereço IP.

Desculpe se pareço confuso. Deixe-me saber se não estou sendo claro.

Cada servidor está executando o Ubuntu Server 12.04.02 e está usando o Apache (se isso ajudar). Meu roteador também é um Netgear e meu provedor é a Time Warner Cable.

    
por Stephen Cioffi 22.06.2013 / 22:29

1 resposta

6

Os sites serão reconhecidos pelo cabeçalho Host: enviado pelo navegador. Mas como seu roteador não é capaz de dispersar HTTP usado pela hospedagem virtual, você precisará escolher um servidor como "endpoint" (e informar ao roteador esse endereço como Virtual Servidor / DMZ).

Em seguida, você configura essa máquina como servidor para seus domínios e proxy para os outros (por exemplo, usando proxy reverso do Apache ), ou (talvez melhor) você instala um proxy nessa máquina e o utiliza para multiplexar solicitações para os outros servidores. Alguns domínios podem até estar hospedados na mesma máquina. nginx é adequado para esse tipo de trabalho, mas você também pode usar outro software (por exemplo, pound ).

Acho que a segunda solução é melhor porque você não precisa mexer com as configurações dos servidores da Web: um proxy faz o proxy e vários servidores da Web fazem a entrega na web. Se você precisar adicionar servidores ou mover hosts virtuais, é mais fácil manter essa arquitetura.

                                    +-- virtual hosts 1..9 -- server B
                                    |
router ----- machine A (nginx?) ----+-- virtual hosts 10..23- server C
                                    |
                                    +-- virtual hosts 24..99- server D

A latência adicionada devido à solicitação ser decodificada duas vezes (uma vez pelo proxy, uma vez pelo destinatário pretendido) é insignificante e mais do que compensada pela aceleração fornecida pela própria proxy.

    
por 22.06.2013 / 23:43