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:
- 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.
Let´s Rock...
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
Os pacotes php e mysql-server são apenas "ilustrativos", não veremos suas configurações, apenas listei para mostrar a funcionalidade dos servidores web.
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.