Para quem não sabe o que é, trata-se de um “acelerador” de aplicações web, por outras palavras é um servidor de “cache” em que guarda em memoria as páginas consultadas o que reduz bastante os acessos ao disco o que proporciona um aumento de velocidade considerável.
Podem ler um pouco mais em https://www.varnish-cache.org/
Vamos então começar pela instalação, para isso é necessário começar por se instalar o servidor varnish através do comando
$ sudo apt-get install varnish
Agora, vamos ter de alterar as configurações do varnish para estar entre o servidor web, neste caso o apache, e o cliente. Para isso vamos dizer ao varnish para “ouvir” a porta 80. basta então edirar o ficheiro “/etc/default/varnish” e onde está *:6081 alterar para *:80
Vamos colocar as novas configurações do varnish no ficheiro vlc, para isso corram os seguintes comandos
$ cd /etc/varnish $ sudo mv default.vlc default.vlc.bck $ sudo vi default.vlc
Adicionem então a seguinte configuração:
## Redirect requests to Apache, running on port 8000 on localhost backend apache { .host = “127.0.0.1″ .port = “8000″ } ## Fetch sub vcl_fetch { ## Remove the X-Forwarded-For header if it exists. remove req.http.X-Forwarded-For; ## insert the client IP address as X-Forwarded-For. This is the normal IP address of the user. set req.http.X-Forwarded-For = req.http.rlnclientipaddr; ## Added security, the “w00tw00t” attacks are pretty annoying so lets block it before it reaches our webserver if (req.url ~ “^/w00tw00t”) { error 403 “Not permitted” } ## Deliver the content return(deliver); } ## Deliver sub vcl_deliver { ## We’ll be hiding some headers added by Varnish. We want to make sure people are not seeing we’re using Varnish. ## Since we’re not caching (yet), why bother telling people we use it? remove resp.http.X-Varnish; remove resp.http.Via; remove resp.http.Age; ## We’d like to hide the X-Powered-By headers. Nobody has to know we can run PHP and have version xyz of it. remove resp.http.X-Powered-By; }
Uma vez alteradas as configurações do varnish, vamos reinica-lo correndo:
$ sudo /etc/init.d/varnish restart
Vamos agora configurar o apache para “ouvir” a porta do varnish e não a do utilizador, para isso alteramos o ficheiro “/etc/apache2/ports.conf” e onde temos
NameVirtualHost *:80 Listen 80
substitui-se por
NameVirtualHost *:8000 Listen 127.0.0.1:8000
Por fim, entramos no directório das configurações do apache “/etc/apache2/sites-enabled” e é necessário alterar cada um dos ficheiros, o que temos
<VirtualHost *:80>
por
<VirtualHost *:8000>
Por fim, vamos reiniciar o apache com
$ /etc/init.d/apache2 restart
e está feito, como podem ver nada do outro mundo .