Configurando vários servidores para compartilhar um IP estático usando subdomínios

2

Estou procurando uma maneira de acessar vários servidores compartilhando um único IP estático usando subdomínios diferentes. Como aviso prévio, nunca cheguei à configuração de rede antes, então meu conhecimento de terminologia apropriada é limitado.

Agora eu tenho 3 servidores rodando o Ubuntu 11.10 sentado atrás de um switch. Gostaria de acessá-los como server1.example.com, server2.example.com e server3.example.com. Quando todos os 3 foram configurados com o mesmo IP estático, apenas uma máquina continha uma conexão com a Internet. Então passei muito tempo experimentando em / etc / network / interfaces, o que provavelmente foi um grande erro, antes de tentar configurar o iptables seguindo este guia .

Não consigo descobrir por onde começar nem até mesmo o que fazer com o Google. Talvez eu precise de uma configuração de hardware diferente, atualmente cada máquina tem um único nic, embora eu possa encontrar placas de rede, se necessário. Além do switch, eu também tenho um roteador wrt54g antigo.

EDITAR

Eu prefiro o acesso HTTP a eles, mas o SSH também é importante.

    
por Brendan 10.03.2012 / 01:16

2 respostas

13

Você não poderá fazer com que todas as 3 máquinas compartilhem um endereço IP. Não como funciona a rede. Confira esta resposta sobre como funciona o roteamento de rede para obter uma explicação sobre como porque.

O que você poderia fazer: Configure um proxy reverso como seu gateway e depois encaminhe um endereço com base no cabeçalho de solicitação do host HTTP. Eu recomendaria usar Libra , já que é leve e seu único objetivo é ser um proxy HTTP reverso. Você poderia usar o apache ou o nginx para realizar a mesma coisa se você estiver mais familiarizado com eles.

Depois de ter sua configuração de proxy reverso, você pode usar NAT para seus servidores e ter seu gateway configurado com seu IP estático.

Exemplo sobre como fazer isso em Pound ( 1.2.3.4 é seu IP estático, todos server#.example.com são registros A para esse IP estático):

ListenHTTP
        Address 1.2.3.4
        Port    80
        Service
            HeadRequire "Host: .*server1.example.com.*"

            BackEnd
                Address 192.168.3.11
                Port    80
            End
        End
        Service
            HeadRequire "Host: .*server2.example.com.*"

            BackEnd
                Address 192.168.3.12
                Port    80
            End
        End
        Service
            HeadRequire "Host: .*server3.example.com.*"

            BackEnd
                Address 192.168.3.13
                Port    80
            End
        End
 End

Resposta ao comentário

Se você quiser manter o proxy reverso em um dos servidores atuais, terá que:

  1. Escolha um dos servidores para ser o proxy reverso.
  2. Peça ao seu roteador que redirecione todo o tráfego HTTP para esse proxy reverso.
  3. Configure seus servidores HTTP no 3 server#.example.com para ouvir uma porta alternativa --- talvez 8080.
  4. Por fim, configure seu proxy reverso para encaminhar o tráfego com base no cabeçalho host para os servidores HTTP na porta 8080.

Configurar uma porta alternativa nos servidores HTTP deve ser bem simples. A parte apenas um pouco difícil seria configurar o proxy reverso, mas você pode encontrar muitos exemplos de que está sendo feito usando libra, apache ou nginx.

    
por 10.03.2012 / 01:42
0

Normalmente, você não pode configurá-lo por nome, selecionando apenas por porta. Eu suponho que é teoricamente possível ter um dispositivo que ouça um nome e passe para um sistema baseado nesse nome, mas eu não ouvi falar de um dispositivo / programa que realmente faria isso. Você poderia ter uma resposta do servidor da web de maneira diferente com base no nome (daí minha crença de que é teoricamente possível).

Normalmente, você deve seguir em frente. Se você quisesse que o server1 fosse o servidor de envio de e-mails, você redirecionaria a porta 25 (provavelmente), com server2 como servidor web, redirecionaria a porta 80 para o server2 e se server3 seria o seu servidor web SSL, então você redirecionaria a porta 443 para ela. Dessa forma, o ONE IP está lidando com todos os três servidores ... mas um IP só pode manipular um conjunto de tarefas - essas tarefas podem ser divididas entre vários servidores.

    
por 10.03.2012 / 01:37