Estou executando vários servidores web em minha casa, cada um deles conectado ao meu roteador.
Servidor A Servidor B Servidor C
Atualmente, só posso usar um servidor, pois minha porta IP (xx.xxx.xx.xx) 80 está apontando para o servidor A. No entanto, alguns domínios apontam para o servidor A, outros para B, etc.
Com o meu único endereço IP, 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 ISP é o Time Warner Cable.
webserver
apache-http-server
home-server
ubuntu-server
Stephen Cioffi
fonte
fonte
Respostas:
Os sites serão reconhecidos através do
Host:
cabeçalho enviado pelo navegador. Mas como seu roteador não é capaz de desmembrar HTTP usado pela hospedagem virtual, você precisará escolher um servidor como "ponto final" (e informar ao roteador esse endereço como Servidor Virtual / DMZ).Em seguida, você configura essa máquina como servidor da web para seus domínios e proxy para as outras (por exemplo, usando o proxy reverso Apache ) ou (talvez melhor) instala um proxy nessa máquina e usa-o para multiplexar solicitações para 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 exemplopound
).Eu acho que a segunda solução é melhor porque você não precisa mexer nas configurações dos servidores da Web: um proxy faz o proxy e vários servidores fazem o serviço da Web. Se você precisar adicionar servidores ou mover hosts virtuais, essa arquitetura é mais fácil de manter.
A latência adicionada devido à decodificação do pedido duas vezes (uma vez pelo proxy, uma vez pelo destinatário pretendido) é insignificante e mais do que compensada pela aceleração fornecida pelo próprio proxy.
fonte