Squid atuando como proxy reverso
Neste artigo mostro como usar o Squid a favor dos servidores web, atuando como servidor proxy reverso, onde conseguimos poupar o Apache e o MySQL de acessos repetitivos, economizando processamento e deixando o acesso aos sites hospedados muito mais rápido. Grandes empresas já usam esta solução, um exemplo é o UOL, outro o Jogossimples.com.br.
Introdução
Proxy reverso é um termo utilizado para proxies que fazem o serviço contrário de um proxy normal.
A maioria dos administradores de redes usam o Squid como proxy de acesso de uma LAN para a internet, podendo controlar acesso, etc e etc.
Neste artigo iremos tratar de um proxy que atua de modo inverso, recebendo requisições EXTERNAS e repassando para os servidores INTERNOS, sendo possível fazer balanceamento de carga TRANSPARENTE entre vários servidores WEB.
No caso de balanceamento de carga, o Squid reversamente falando, atua muito bem, se um dos servidores cair, o Squid automaticamente NÃO passa requisições mais à ele, deixando seu sistema redundante.
Interessante e seguro, é que os servidores WEB não ficam diretamente com "a cara" na internet, aumentando ainda mais a segurança. :)
Veremos uma configuração básica no seguinte cenário:
Relação dos pacotes utilizados:
Configuração do apache:
/etc/httpd/conf/httpd.conf
Configuração do Squid:
/etc/squid/squid.conf
O Squid vai fazer o cache na pasta /var/spool/squid.
A pasta do Squid recomendo deixar num HD separado, pois o Squid gera muito I/O no HD, podendo prejudicar os outros serviços que dependem do acesso a disco.
A maioria dos administradores de redes usam o Squid como proxy de acesso de uma LAN para a internet, podendo controlar acesso, etc e etc.
Neste artigo iremos tratar de um proxy que atua de modo inverso, recebendo requisições EXTERNAS e repassando para os servidores INTERNOS, sendo possível fazer balanceamento de carga TRANSPARENTE entre vários servidores WEB.
No caso de balanceamento de carga, o Squid reversamente falando, atua muito bem, se um dos servidores cair, o Squid automaticamente NÃO passa requisições mais à ele, deixando seu sistema redundante.
Interessante e seguro, é que os servidores WEB não ficam diretamente com "a cara" na internet, aumentando ainda mais a segurança. :)
Veremos uma configuração básica no seguinte cenário:
- 1 servidor Squid - 200.200.200.1 e 192.168.0.1 (interface externa e interna);
- 2 servidores web (com os mesmos arquivos e configuração, mudando apenas o ip), 192.168.0.2 e 192.168.0.3 (1 ip para cada servidor);
- Domínio: dns www.meusite.com.br devidamente configurado para 200.200.200.1.
Pacotes necessários
Este artigo pode ser executado em QUALQUER sistema operacional, estou utilizando Red Hat Enterprise 5 como exemplo.Relação dos pacotes utilizados:
- httpd-devel-2.2.3-11.el5
- httpd-2.2.3-11.el5
- squid-2.6.STABLE6-4.el5
- php-5.1.6-15.el5
- mysql-server-5.0.22-2.1.0.1
Arquivos de configurações
Os arquivos que vão ser alterados são:Configuração do apache:
/etc/httpd/conf/httpd.conf
Configuração do Squid:
/etc/squid/squid.conf
O Squid vai fazer o cache na pasta /var/spool/squid.
A pasta do Squid recomendo deixar num HD separado, pois o Squid gera muito I/O no HD, podendo prejudicar os outros serviços que dependem do acesso a disco.
Parabéns Alexandre.