Vários servidores da web atrás de um único firewall

6

Eu tenho vários servidores da web atrás de um único firewall (SVN, Exchange, etc.). Eu quero ser capaz de acessar todos os vários servidores remotamente, mas desde que eles estão usando a mesma porta (o padrão HTTPS), isso é possível?

Se eu configurá-lo de modo que cada um esteja escutando em portas diferentes, seria possível fazer com que eu pudesse acessar cada servidor usando um subdomínio diferente (então svn.domain.com apontaria para svn, mail .domain.com apontaria para trocar servidor)? Existe, talvez, uma maneira de configurar meu roteador para encaminhar uma porta diferente, dependendo de qual subdomínio o cliente solicitou?

Como as pessoas normalmente lidam com essa questão?

    
por William 16.05.2013 / 03:54

5 respostas

8

Pessoalmente, gosto de usar um proxy reverso no apache ao servir vários servidores atrás de um endereço IP. Eu escrevi um artigo sobre isso há alguns anos.

Pode haver momentos em que você precisa ter vários servidores da Web, mas recebeu apenas um endereço IP público. O problema que você enfrentará é que deseja que seus vários domínios resolvam o mesmo endereço IP, mas aponte para um servidor diferente. Isso é muito factível com o Apache. Eu configurei um servidor gateway dentro da minha nuvem privada com um endereço 192.168.1.2. Eu tenho vários servidores web com endereços locais; 192.168.1.10 e 192.168.1.11 por exemplo.

No meu servidor Gateway, eu instalo o Apache e os arquivos mod_proxy. Quando isso estiver concluído, poderei configurar os hosts virtuais para encaminhar o domínio.

<VirtualHost *:80>
   DocumentRoot /var/www/example.org
    ServerName *.example.org
    ProxyRequests Off
    <Proxy *>
      Order deny,allow
      Allow from all
    </Proxy>
    ProxyPreserveHost on
    ProxyPass / http://192.168.1.10/
    ProxyPassReverse / http://192.168.1.10
</VirtualHost>

<VirtualHost *:80>
   DocumentRoot /var/www/example.com
    ServerName *.example.com
    ProxyRequests Off
    <Proxy *>
      Order deny,allow
      Allow from all
    </Proxy>
    ProxyPreserveHost on
    ProxyPass / http://192.168.1.11/
    ProxyPassReverse / http://192.168.1.11/
</VirtualHost>

Reinicie o Apache e configure seu roteador para aceitar conexões de entrada para o endereço local 192.168.1.2. Embora eu pudesse ter apontado o DocumentRoot para o mesmo local (ou seja, / var / www), mas normalmente tenho arquivos .htaccess para cada site onde posso forçar o SSL (redirecionar 80 para 443 em nomes de domínio específicos).

O bom desta rota é que você pode servir vários servidores HTTPS com o mesmo endereço IP. O único problema é que o Internet Explorer não reconhece a porta VirtualHost 443 ou o host nomeado e você obteria um erro de certificado. No entanto, o Safari, o Firefox e o Chrome reconhecem cada certificado individual para o domínio que está sendo intermediado por proxy.

    
por 16.05.2013 / 04:26
2

Ou você pode usar o PageKite :)

Veja a página do projeto abaixo: link

    
por 04.02.2014 / 17:11
1

Você pode fazer isso configurando subdomínios no seu DNS interno e externo. Aqui está um bom artigo explicando o que você precisa adicionar com base no DNS que está sendo executado. Lembre-se, ao adicionar entradas ao DNS externo, leva tempo para se propagar.

    
por 16.05.2013 / 04:03
1

O Kobaltz é provavelmente a melhor solução.

Mas, se você estiver disposto a usar portas não padrão, poderá configurar o encaminhamento de portas (na verdade, é apenas o NAT que altera a porta de origem / destino) de um dos aplicativos. Portanto, você teria um deles representado como porta normal 443 para https e o outro como algo como 8443. Para navegar até esse outro servidor, você precisará inserir https://youipaddress:8443 (ou a entrada DNS se tiver uma configuração). É claro que isso só funciona se você estiver disposto a usar um número de porta diferente, mas é uma solução bastante comum quando os recursos são limitados.

A configuração específica irá variar muito com base no dispositivo periférico que executa o NAT (seu firewall ou roteador), mas geralmente você irá traduzir assim:

IP interno - > IP externo (possível o IP da sua interface externa) porta padrão (443) - > porta selecionada (por exemplo, 8443)

Aqui está um bom artigo sobre o encaminhamento de porta.

    
por 16.05.2013 / 04:34
0

Aqui é a documentação da Microsoft para configurar um servidor proxy.

    
por 14.08.2017 / 16:53