como faço para encaminhar por hostname para diferentes hosts da web por trás de um firewall --mod_proxy?

1

Eu preciso de uma solução rápida que me permita hospedar vários servidores da web por trás do meu firewall. Eles estão em computadores diferentes, então não posso usar hospedagem virtual do Apache. Eu também não quero usar diferentes portas não padrão para cada máquina.

O problema é que meu roteador só pode encaminhar a porta 443 para uma máquina. Achei que a melhor solução seria usar o proxy reverso ou o encaminhamento de proxy, mas tenho tido problemas para entender como configurá-lo.

  • Estou assumindo que posso encaminhar todo o tráfego 443 para um dos servidores e fazer com que o servidor proxy.
  • Todos os servidores aceitam htmls tráfego apenas.
  • Estou usando o DDNS e todos os servidores resolvem o mesmo Endereço IP da WAN.

Configuração:

  • server1.domain.com = servidor proxy e wiki
  • server2.domain.com = servidor de documentação
  • server3.domain.com = servidor owncloud

Eu tentei colocar o seguinte em /etc/apache2/conf-available/proxy-pass.conf no server1:

SSLProxyEngine on
ProxyPass "/directory"  "https://server2.domain.com/directory" 
ProxyPass "/owncloud"  "https://server3.domain.com/owncloud" 

Isso funciona, mas não é o que estou procurando.

Eu preciso direcionar todo o tráfego para o servidor designado pelo nome de domínio da URL de entrada, independentemente do diretório, pois tenho muitos subdiretórios depois da URL base.

Algo como:

ProxyPass "https://server2.domain.com"  "https://server2.domain.com" 
ProxyPass "https://server3.domain.com"  "https://server3.domain.com"

Devo procurar outra solução, como pound , ou existe uma maneira de fazer isso com o apache. Eu percebi que tenho o apache instalado, então use-o?

    
por ajnabi 27.09.2017 / 21:15

1 resposta

2

They are on different computers, so I can't use apache virtual hosting

Na verdade, é exatamente isso que você precisa fazer;)

O manual não é explícito, mas você inverte tudo para um host específico fazendo / , a URL raiz, o destino da diretiva ProxyPass em uma entrada do host virtual:

<VirtualHost *:80>
  ServerName host.example.com
  ProxyPass / http://internalserver.example.net/
  ProxyPassReverse / http://internalserver.example.net/
</VirtualHost>
<VirtualHost *:80>
  ServerName host2.example.com
  ProxyPass / http://other-internalserver.example.net/
  ProxyPassReverse / http://other-internalserver.example.net/
</VirtualHost>
    
por 27.09.2017 / 21:28