Sistemas operacionais:
- CentOS 6.3 - x86_64
- Red Hat Enterprise Linux 6.3 - x86_64
Site do Projeto Varnish:
Primeiramente, instale a última Versão do
Varnish. Pegue nos repositórios oficiais:
Repositório:
Instale os pacotes mais atuais, hoje são os:
- varnish-libs-3.0.3-1.el6.x86_64.rpm
- varnish-3.0.3-1.el6.x86_64.rpm
Instalação
# rpm -hiv varnish-libs-3.0.3-1.el6.x86_64.rpm varnish-3.0.3-1.el6.x86_64.rpm
Opcionalmente, você pode instalar o pacote de
docs, que é muito interessante para um aprofundamento no Varnish.
# rpm -hiv varnish-docs-3.0.3-1.el6.x86_64.rpm
Configuração do Varnish com Apache e Multidomínios (virtual host)
Como o Varnish vai atuar como um proxy reverso, ou seja, vai fazer um cache das requisições, para consecutivamente responder
mais rápido. O Varnish precisa escutar a porta 80 do Apache.
Altere a porta padrão do Varnish, e mude para a porta 80. Mude a diretiva LISTEN e deixe ouvindo a porta 80.
Altere o arquivo:
/etc/sysconfig/varnish
VARNISH_LISTEN_PORT=80
Com o Varnish instalado e escutando na porta 80, adicione a quantidade de domínios que achar necessário.
Os domínios no
Apache não pode utilizar a porta 80, pois ela agora é do Varnish.
Você precisa usar qualquer outra porta, eu utilizei a porta 81 no Apache, mas pode ser qualquer porta livre no sistema.
No arquivo:
/etc/varnish/default.vcl
Adicione os domínios:
# X.X.X.X é o seu IP, na qual os sites responderão. Se for um teste interno, é um IP privado, se for uma
máquina na
Internet, é um IP público (IP válido).
# Isto quer dizer que quando for digitado no navegador site-exemplo1.com ou www.site-exemplo1.com, o site vai ser tratado pelo
proxy reverso
Varnish.
/etc/varnish/default.vcl
#exemplo1
# As definições abaixo diz que quando for digitado no navegador "site-exemplo1.com" ou "www.site-exemplo1.com", o site vai ser
tratado pelo
proxy reverso Varnish.
# site-exemplo1
backend exemplo1 {
.host = "X.X.X.X";
.port = "81";
}
sub vcl_recv {
if (req.http.host ~ "(?i)^(www.)?site-exemplo1.com$") {
set req.backend = exemplo1;
return (lookup);
}
}
# fim site-exemplo1
# site-exemplo2
backend exemplo2 {
.host = "X.X.X.X";
.port = "81";
}
sub vcl_recv {
if (req.http.host ~ "(?i)^(www.)?site-exemplo2.com$") {
set req.backend = exemplo2;
return (lookup);
}
}
# fim site-exemplo2
#...
# site-exemploN
...
# fim site-exemploN
Bom, o Varnish já está configurado, agora basta você criar um
virtual host no Apache e colocar no ar.
Em uma instalação default do Apache, do tipo:
# yum install httpd
O Apache, por padrão, vai escutar na porta 80, então, altere a porta padrão para uma porta de sua preferência. Aqui neste tutorial,
nós estamos
utilizando a porta 81.
No arquivo:
/etc/httpd/conf/httpd.conf
Deixe a diretiva Listen:
Listen 81
Criar um virtual host
A pasta "Include", padrão do Apache, é a
/etc/httpd/conf.d/, nesta pasta nós vamos criar um virtual host.
Para confirmar a pasta Include:
# grep -i Include /etc/httpd/conf/httpd.conf
Deve vir algo como:
Include conf.d/*.conf
/etc/http/conf.d/site-exemplo.conf
NameVirtualHost 192.168.1.179:81
<VirtualHost 192.168.1.179:81>
# Nome do dominio
ServerName www.site-exemplo.com
ServerAlias site-exemplo.com
DocumentRoot /var/www/html/pasta-site-exemplo
</VirtualHost>
Definimos que a pasta
/var/www/html/pasta-site-exemplo,é onde ficará os arquivos do site. Suba algum site de teste, ou
qualquer
coisa (um
index.html, já resolve).
Sendo assim:
- Configuramos o Varnish para escutar na porta 80, e tratar as requisições HTTP.
- Adicionamos virtual host no Varnish, para escutar na porta 81.
- Configuramos o Apache para escutar na porta 81 e definimos um virtual host no Apache.
Para finalizar, vamos reiniciar o Apache e o Varnish:
# /etc/init.d/varnish restar
# /etc/init.d/varnishlog restart
# /etc/init.d/varnishncsa restart
# /etc/init.d/httpd restart
Configuramos uma instalação básica do Varnish + Apache + Virtual hosts. Para um melhor aprofundamento, leiam o
man
do Varnish,
pois é rico em otimizações.
Visite também o site oficial do projeto:
É isto aí pessoas.
Abraço.