Proxy reverso com Apache + cache + compactação + estatísticas

Nesse artigo vou explicar passo-a-passo como instalar e configurar um proxy reverso usando Apache com cache, compactação e estatísticas. Tópicos: entendo um proxy reverso; instalação e configuração do apache; configuração de cache; configuração de compactação; instalação e configuração do awstats para estatísticas.

[ Hits: 77.675 ]

Por: Diego Oliveira da Silva em 07/08/2010 | Blog: https://www.linkedin.com/profile/view?id=85617841


Instalação e configuração do Apache



Vou usar o CentOS x64 como base. Vamos instalar o Apache 2.2.3:

# yum install httpd.x86_64 httpd-devel.x86_64

Apache instalado, vamos a configuração.

Vou apenas falar sobre as configurações de proxy reverso.

Para melhor ilustrar vou criar o seguinte cenário:
  • Site principal da empresa = www.nossoproxy.com.br
  • Site de um sistema chamado SOS da empresa = sos.nossoproxy.com.br
  • Site de outro sistema chamado ONLINE da empresa = online.nossoproxy.com.br

A ideia é fazer com que todos os serviços da empresa passem a funcionar somente pelo site principal, o www.nossoproxy.com.br.

Após a configuração ficará assim:
  • Para acessar o sistema SOS www.nossoproxy.com.br/sos
  • Para acessar o sistema ONLINE www.nossoproxy.com/online

# vi /etc/httpd/conf/httpd.conf

Verifique se as seguintes linhas estão descomentadas, sem '#' a frente:

LoadModule rewrite_module modules/mod_rewrite.so
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule disk_cache_module modules/mod_disk_cache.so
LoadModule deflate_module modules/mod_deflate.so
LoadModule headers_module modules/mod_headers.so

Acredito que por padrão já devem estar descomentadas.

Vamos adicionar as seguintes linhas ao final do arquivo:

<VirtualHost *:80>
<IfModule mod_proxy.c>
####COMPACTAÇÃO####
<IfModule mod_headers.c>

   ProxyPreserveHost Off
   <Proxy "http://sos.nossoproxy.com.br">
      RequestHeader set Host  sos.nossoproxy.com.br
   </Proxy>

   ProxyPass /sos  http:// sos.nossoproxy.com.br/sos
   ProxyPassReverse /sos/ http://www.nossoproxy.com.br/sos/
</IfModule>

<IfModule mod_headers.c>

   ProxyPreserveHost Off

   <Proxy "http://online.nossoproxy.com.br">
      RequestHeader set Host  sos.nossoproxy.com.br
   </Proxy>

   ProxyPass /online  http://online.nossoproxy.com.br/online
   ProxyPassReverse /online/ http://www.nossoproxy.com.br/online/
</IfModule>

<IfModule mod_headers.c>

   ProxyPreserveHost Off

   <Proxy "http://www.nossoproxy.com.br">
      RequestHeader set Host   www.nossoproxy.com.br
   </Proxy>

   ProxyPass /  http://www.nossoproxy.com.br/
   ProxyPassReverse / http:// www.nossoproxy.com.br
</IfModule>
### CACHE###
</IfModule>
</VirtualHost>

Salvar e feche.

Reinicie o Apache:

# service httpd restart

Apache configurado, agora vou explicar cada item:

<IfModule mod_headers.c>
</IfModule>

Dentro dele você pode fazer configuração de proxy que modifica o header da requisição. Necessário quando o servidor que você queira se conectar solicita o Host Header.

RequestHeader set Host Modifica o Host Header, assim você pode se conectar no Web Server através de nome.

ProxyPass pega o que o usuário digita após a primeira / (ela também está incluída) e direciona para um endereço. Sendo que isso é em direção ao servidor proxy. Exemplo: www.nossoproxy.com.br/sos

O ProxyPass vai pegar o /sos e se conectar em http://sos.nossoproxy.com.br/sos.

ProxyPassReverse altera ou mantém o que vem após a primeira / (ela também está incluída) e direciona para um endereço. Sendo que isso é em direção ao usuário (reverso).

Pronto! Próximo passo.

Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. Instalação e configuração do Apache
   3. Configuração de cache
   4. Configuração de compactação
   5. Instalação e configuração do awstats para estatísticas
   6. Considerações finais
Outros artigos deste autor

AWS - VPN IPSEC com Libreswan

Leitura recomendada

Criando acima de quatro partições no HD

Instalando Linux em segundo HD IDE, Sata, USB ou Pendrive

Criando um pacote TXZ no Slackware

Diferenças entre o sistema de arquivos do Windows e Linux

Instalando e configurando um servidor CVS com Subversion

  
Comentários
[1] Comentário enviado por gustcol em 08/08/2010 - 12:27h

Excelente post, utilizamos muito as configurações que vc passou no trabalho para a configuração de grandes sites e portais. Eu fiquei intrigado quando vc disse que o cache em disco é mais rápido do que o cache em memória, nos testes realizados pelo o time o qual faço parte, o cache em memória apresentou uma performance muito melhor, digo-lhe que a memória no caso era DDR3, instalada em servidores com hardware "parrudo". Quanto ao vanish e o nginx, ambos são excelentes, mas hoje temos uma documentação maior do Nginx na web, até livro, o qual já comprei https://www.packtpub.com/nginx-http-server-for-web-applications/book. O awstats é a ferramenta mais utilizado no mercado para saber com exatidão como está o acesso e até mesmo, a performance do seu site. dá uma olhada no www.corujadeti.com.br, tem alguns posts que eu falo sobre performance.

[2] Comentário enviado por fernandoborges em 05/01/2013 - 14:37h

Sem dúvida nenhuma é um grande artigo, parabéns.

[3] Comentário enviado por fernandoborges em 30/01/2013 - 15:19h

Parabéns pelo excepcional artigo!

[4] Comentário enviado por kurtz01 em 08/12/2014 - 23:36h

Ótimo artigo


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts