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.028 ]

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

fstab - Sua função e parâmetros

GlusterFS - Um Sistema de Arquivos Distribuídos

Criando um servidor CVS

Esquemas de particionamento e sistemas de arquivos

MooseFS - Sistema de arquivos distribuído

  
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