Criando Proxy Reverso para Tomcat

Você gostaria de redirecionar suas aplicações para que sejam acessíveis através de proxy na porta 80? Bem, neste artigo iremos apresentar a vocês a solução utilizando o proxy reverso do apache.

O que é Proxy Reverso?

O Proxy Reverse pode ser entendido também como Cluster Web, ou seja, uma máquina principal recebe a solicitação e essa máquina tem por objetivo solicitar o serviço de outra máquina. Não entenda como redirecionamento e sim como troca de processamento, sendo que o processamento estará sendo dividido, ou seja, uma estará postando as informações e a outra estará fornecendo o serviço. Fonte: VivaoLinux

Instalando o Apache

Utilizando o Debian ou Ubuntu execute o comando abaixo para iniciar a instalação do apache

sudo apt-get install apache2

Ativando Módulos do Apache

Agora vamos ativar os módulos do proxy do apache

sudo a2enmod proxy

sudo a2enmod proxy_http

sudo a2enmod proxy_ajp

Configurando Proxy

Vamos editar o arquivo “proxy.conf” que fica dentro do diretório “/etc/apache2/mods-enabled/”. Você pode utilizar qualquer outro editor, vou utilizar o nano.

sudo nano /etc/apache2/mods-enabled/proxy.conf

Copie o código abaixo e cole dentro desse arquivo proxy.conf

<IfModule mod_proxy.c>
 ProxyRequests Off
        <Proxy *>
                AddDefaultCharset off
                Order deny,allow
                Allow from all
        </Proxy>
ProxyVia On
ProxyPass /aplicacao http://localhost:8080/aplicacao
ProxyPassReverse /aplicacao http://localhost:8080/aplicacao
</IfModule>

Faça a alteração das informações de ProxyPass e ProxyPassReverse de acordo com sua aplicação que deseja criar o proxy reverso. Feito isto, é necessário reiniciar o servidor apache para as alterações serem ativadas.

sudo service apache2 restart

Agora você pode fazer o teste acessando a sua aplicação conforme a configuração feita no proxy.conf, no nosso caso podemos acessar utilizando http://localhost/aplicacao que será redirecionado para a aplicação na porta 8080 que está rodando o tomcat.

Bônus

Dependendo do tempo de retorno da requisição você poderá receber o seguinte erro:

Proxy Error 502 : The proxy server received an invalid response from an upstream server

Para resolver isto é necessário o timeout global do proxy você deve inserir esse trecho de código abaixo 0207dentro do arquivo do proxy.conf.

ProxyRequests On 
<Proxy *>
    AddDefaultCharset off
    Order deny,allow
    Allow from all
</Proxy>
ProxyPreserveHost Off

ProxyTimeout 1200

Finally

Chegamos ao fim de mais um tutorial, espero que tenha te ajudado. Caso tenha alguma dificuldade na configuração do proxy reverso, ou quer deixar algum feedback, utilize o formulário de comentários abaixo.