sexta-feira, 4 de dezembro de 2009

Apache Proxy

Geralmente, todo servidor de aplicação vem com um servidor HTTP embutido.
Por exemplo, se vc subir um Tomcat, na porta 8080, ele por si só vai responder HTTP.

O que acontece é que o Apache é mais rápido para servir conteúdo (cache, etc) portanto, muitos utilizam colocar o Apache na frente dos servidores HTTP dos aplications servers, servindo conteúdo estático (html, js, css, etc) diretamente, e somente redirecionando para o app server quando necessario.

Nesse caso, o Apache atua como um proxy, interceptando todas as conexões TCP na porta que estiver ouvindo, e encaminhando para a porta TCP do application server:

CLIENT ---- ---- APACHE ----- ----- APP SERVER

Segue um exemplo abaixo, à ser aplicado dentro de um do Apache, redirecionando todas as URLs para um aplication server rodando na propria maquina, na porta 8080:

RewriteEngine on
RewriteLogLevel 1
RewriteLog /logs/rewrite.log
RewriteRule /(.*)$ http://127.0.0.1:8080/$1 [P,L]
ProxyRequests Off
ProxyVia Block
ProxyPreserveHost On
ProxyTimeout 10