Varnish cache : Différence entre versions
De wikiGite
(2 révisions intermédiaires par le même utilisateur non affichées) | |||
Ligne 32 : | Ligne 32 : | ||
Pour ne pas changer le port d'Apache on redirige le port 80 en entrée avec iptables vers varnish (tous ce qui vient de l’extérieur est natté du port 80 vers le port 6081). Varnish renverra ensuite vers le port 80 d'Apache : | Pour ne pas changer le port d'Apache on redirige le port 80 en entrée avec iptables vers varnish (tous ce qui vient de l’extérieur est natté du port 80 vers le port 6081). Varnish renverra ensuite vers le port 80 d'Apache : | ||
+ | # iptables -t nat -A PREROUTING -i eth0 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 6081 | ||
+ | # iptables-save | ||
+ | iptables-save conserve cette règle aux redémarrages de CentOS. Pour une autre distribution, voir comment relancer cette règle au boot, ou l'ajouter dans rc.local, par exemple. | ||
− | Rajouter ces raccourci dans ~/.bashrc : | + | Rajouter ces raccourci dans ~/.bashrc de root : |
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
alias varnishon='iptables -t nat -A PREROUTING -i eth0 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 6081' | alias varnishon='iptables -t nat -A PREROUTING -i eth0 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 6081' | ||
Ligne 73 : | Ligne 76 : | ||
service varnish restart | service varnish restart | ||
= Sources = | = Sources = | ||
− | + | * http://www.how2centos.com/install-varnish-centos-6/#ixzz2I82TuuYJ : Info complémentaires | |
− | + | * http://pietervogelaar.nl/varnish-3-exclude-a-virtual-host/ : exclure virtualhost |
Version actuelle datée du 7 novembre 2014 à 18:50
Sommaire
Installation
Recuperer le paquet du depot varnish sur http://repo.varnish-cache.org/redhat/varnish-3.0/ Pour Centos 6 :
yum install http://repo.varnish-cache.org/redhat/varnish-3.0/el6/noarch/varnish-release/varnish-release-3.0-1.el6.noarch.rpm
Pour Centos 5:
wget http://repo.varnish-cache.org/redhat/varnish-3.0/el5/noarch/varnish-release/varnish-release-3.0-1.noarch.rpm rpm -ivh varnish-release-3.0-1.noarch.rpm
Installer Varnish
# yum install varnish
Editer /etc/sysconfig/varnish :
VARNISH_LISTEN_PORT=6081
Éditer la configuration de varnish pour la rediretion vers vers apache /etc/varnish/default.vcl :
backend default { .host = "10.0.0.1"; .port = "80"; #pour eviter les erreurs 503 .connect_timeout = 600s; .first_byte_timeout = 600s; .between_bytes_timeout = 600s; }
Lancer varnish
service varnish start
Lancer varnish au démarrage
# chkconfig varnish on
Read more: http:www.how2centos.com/install-varnish-centos-6/#ixzz2I82TuuYJ
Pour ne pas changer le port d'Apache on redirige le port 80 en entrée avec iptables vers varnish (tous ce qui vient de l’extérieur est natté du port 80 vers le port 6081). Varnish renverra ensuite vers le port 80 d'Apache :
# iptables -t nat -A PREROUTING -i eth0 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 6081 # iptables-save
iptables-save conserve cette règle aux redémarrages de CentOS. Pour une autre distribution, voir comment relancer cette règle au boot, ou l'ajouter dans rc.local, par exemple.
Rajouter ces raccourci dans ~/.bashrc de root :
alias varnishon='iptables -t nat -A PREROUTING -i eth0 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 6081'
alias varnishoff='iptables -t nat -D PREROUTING -i eth0 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 6081'
alias varnishstatus='iptables -L -t nat |grep -q 6081; if [ "test$?" = "test0" ]; then echo -e "Varnish On"; else echo -e "Varnish Off"; fi ; iptables -L -t nat'
Configuration
Varnish en mémoire plutôt que sur disque
Changer :
MEMLOCK=82000 ... VARNISH_STORAGE="file,${VARNISH_STORAGE_FILE},${VARNISH_STORAGE_SIZE}"
par :
MEMLOCK=512000 ... VARNISH_STORAGE="malloc,512M"
pour augmenter la mémoire autorisée à 512M et forcer Varnish en mémoire sur ces 512M.
Pour exclure un hôte
vim /etc/varnish/default.vcl
sub vcl_recv {
# Don't cache domain1.com or domain2.org - optional www
if (req.http.host ~ "(www\.)?(domain1.com|domain2.org)\.(com|nl|org|dev|local)") {
return (pass);
}
}
sub vcl_deliver {
# You can optionally set a reponse header so it's easier for you to debug if Varnish really didn't cache objects for the host
# Don't cache domain1.com or domain2.org - optional www
if (req.http.host ~ "(www\.)?(domain1.com|domain2.org)\.(com|nl|org|dev|local)") {
set resp.http.X-Cache = "EXCLUDED";
}
}
Relancer varnish :
service varnish restart
Sources
- http://www.how2centos.com/install-varnish-centos-6/#ixzz2I82TuuYJ : Info complémentaires
- http://pietervogelaar.nl/varnish-3-exclude-a-virtual-host/ : exclure virtualhost