Apache, mod_proxy e vhosts

Apache

Antes de mais nada, qual a utilidade do modulo mod_proxy no Apache ?

Bom, no meu caso resolveu o seguinte problema:

http://www.exemplo.com,
Com arquivos em Servidor 1 (192.168.3.10)

http://adm.exemplo.com,
Com arquivos em Servidor 2 (192.168.3.11)

http://rh.exemplo.com,
Com arquivos em Servidor 3 (192.168.3.12)

Sendo o Servidor 1 o “cara” habilitado com o link da embratel de porte do Apache 2.

Tudo planejado …

Mais como um unico servidor iria gerenciar seu proprio dominio e outros dois (subdominios) sendo que os mesmos com os arquivos referenciados na rede cada um com seu determinado IP.

Sim eu tentei mapear as unidades, ideia infeliz …

Agora vamos ao que interessa, lendo alguns artigos publicados pelos colaboradores do Apache, verifiquei algo interessante no mod_proxy, que faria justamente o que eu precisava:

Mod_proxy: Redirecionar as requisicoes de certas URL’s para outros servidores web.

Vamos fazer funcionar, no httpd.conf insira:

LoadModule proxy_module /usr/lib/apache2/modules/mod_proxy.so

LoadModule proxy_http_module /usr/lib/apache2/modules/mod_proxy_http.so

Verifique os caminhos corretamente.

Em seguida vamos a configuracao dos vhosts (virtual host).

NameVirtualHost *
<VirtualHost *>
ServerName adm.exemplo.com

ProxyRequests Off
<Proxy *>
Order deny,allow
Allow from all
</Proxy>

ProxyPass / http://192.168.3.11/
ProxyPassReverse / http://192.168.3.11/
<Location />
Order allow,deny
Allow from all
</Location>
</VirtualHost>

Lembrando que para varios vhosts basta repetir o codigo acima entre as tags VirtualHost alterando o subdominio e o IP da rede.

Seguindo o codigo acima, a unica coisa nova que vemos sao as tags proxy que indicam que sera liberado o acesso para todos (eh possivel restringir para acesso apenas local, interessante para alguns casos), e tambem vemos:

ProxyPass / http://192.168.3.11/
ProxyPassReverse / http://192.168.3.11/

No portugues claro, temos, Passe para 192… no caso desse VHost faca revesao para 192… a barra antes do IP indica em qual pasta sera utilizado para acessar aquele vhost.

No meu caso utilizei um servidor rodando Debian 4 etch, portanto os arquivos que utilizei para a configuracao sao um tanto quanto diferentes ao httpd.conf (que eh o utilizado na maioria dos casos). Os “LoadModules” deverao ser inseridos em proxy.conf dentro de mods-enabled e as configuracoes dos vhosts irao em default dentro de sites-enabled.

Obs: Sim, estou sem acentos.

Links: Apache, Tutorial mod_proxy


One Comment on “Apache, mod_proxy e vhosts”

  1. Tomás disse:

    ola, estou a tentar fazer isso com:

    ServerName blog.casa.com
    ProxyRequests Off

    Order deny,allow
    Allow from all

    ProxyPass / http://IP_DA_MAQUINA_2(192.168.1.200)/
    ProxyPassReverse / http://IP_DA_MAQUINA_2(192.168.1.200)/

    Order allow,deny
    Allow from all

    O problema é que ele nao reconhece o ip blog.casa.com na internet.
    O ip casa.com funciona. é ip fixo. Um amigo meteu moodle.casa,com
    mas eu queria meter um blog.casa.com

    Podes ajudar? Obrigado


Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s