Como eu redireciono para um servidor backend diferente baseado em URL usando o Apache?

1

Sou novato no Apache, desculpe se esta é uma solução documentada em algum lugar. Eu tenho vasculhado a web e não consigo encontrar essa resposta ...

Eu gostaria de redirecionar o tráfego com base na URL que entra no meu servidor web Wheezy do Debian que está executando o Apapche para diferentes servidores de back-end. Por exemplo, se o URL for link , ele será transmitido para o IP do servidor 192.168.0.100, mas se o URL for link será passado para o IP 192.168.0.110 do servidor.

Agradecemos antecipadamente por qualquer ajuda.

    
por jimbei57 17.04.2014 / 04:14

2 respostas

2

Você pode usar seu Apache frontend Server como um proxy reverso para seus servidores de back-end: mod_proxy

por exemplo:

<VirtualHost *:80>
   ServerName abc.mydomain.com
   ProxyPass / http://192.168.0.100
   ProxyPassReverse / http://192.168.0.100
</VirtualHost>

<VirtualHost *:80>
   ServerName def.mydomain.com
   ProxyPass / http://192.168.0.110
   ProxyPassReverse / http://192.168.0.110
</VirtualHost>

Você terá que ativar esses módulos:

a2enmod proxy 
a2enmod proxy_http

A vantagem de mod_proxy é que é transparente para o usuário final: o URL na barra de endereço do navegador permanecerá inalterado: ele permanecerá http://abc.mydomain.com , mas na verdade eles são atendidos por http://192.168.0.100 .

    
por 17.04.2014 / 05:00
2

O que você deseja fazer é chamado de proxy reverso. Alternativamente, você pode usar o Nginx, que supera o Apache como um proxy reverso.

    
por 17.04.2014 / 05:50