quarta-feira, 19 de setembro de 2012

Apache - mod_proxy

Olá pessoal! Sumi um pouco por causa de um projeto que iniciei. Para falar a verdade, por enquanto está tudo dando errado. Mas o projeto está caminhando. Assim que ele estiver decente falo mais sobre ele aqui. ;)

Hoje será uma dica simples sobre o mod_proxy do apache. É um módulo do apache que permite que um usuário externo acesse uma url local. Por exemplo, permite que um usuário acesse uma url local como http://localhost:9955 via http://www.servidor_exemplo.com.br. Porém, ainda não aprendi como fazer exatamente isso. O que consegui fazer foi acessar http://localhost:9955 via http://www.servidor_exemplo:9955/. O que já foi o suficiente para resolver o problema.


Como fazer?

Como o uso do proxy requer uma aplicação sua já rodando na máquina, vamos considerar que você já tenha o apache rodando em sua máquina e que há uma aplicação local rodando no endereço: http://localhost:9955.

Primeiro, você precisa ter o apache e o mod_proxy instalado. Para instalar o apache:
sudo apt-get install apache2

E para instalar o mod_proxy:
sudo apt-get install libapache2-mod-proxy-html

Feito isso, ative o mod_proxy (esta forma de ativar ativa todos os submódulos do mod_proxy, o que pode consumir recursos demais de seu servidor, mas é boa para fazer testes):
a2enmod proxy*

Ative o mod_proxy assim:
a2enmod proxy proxy_html

Já deve ser o suficiente, se não for, tente ir ativando os outros módulos um por um: proxy_ajp, proxy_balancer, proxy_connect, proxy_ftp e proxy_scgi.

Agora, vamos criar o proxy num arquivo de host do apache:
vim /etc/apache2/sites-available/exemplo-host
Com o seguinte conteúdo:
<VirtualHost>
    ServerName www.servidor_exemplo.com.br
    ProxyPreserveHost On
    <Proxy>
        ProxyPass http://localhost:9955/
        ProxyPassReverse http://localhost:9955/

        allow from all
    </Proxy>
</VirtualHost>

Pronto! É só copiar esse arquivo para /etc/apache2/sites-enabled/:
cp /etc/apache2/sites-available/exemplo-host /etc/apache2/sites-enabled/exemplo-host
Ou utilizar o a2ensite:
a2ensite exemplo-host

Em seguida use o:
/etc/init.d/apache2 reload
/etc/init.d/apache2 restart

Se o seu host virtual para www.servidor_exemplo.com.br estiver configurado corretamente, o endereço www.servidor_exemplo.com.br:9955 vai começar a servir seu projeto local. ;)

Caso não saiba como configurar um host virtual, no caso, tudo que seria preciso é que o domínio www.servidor_exemplo.com.br aponte para o IP da máquina em que seu projeto está. O arquivo que criamos ali em cima já cria um host virtual para você.

Por hoje é só!

Vou fazer o possível para enviar ao menos um novo texto por semana.
Até mais!




Nenhum comentário: