Varnish
Comme vous pouvez le voir le blog a revêtu une nouvelle peau, mais également aussi un nouveau moteur de fonctionnement.
J’ai nommé le cache Varnish, en quelques mots c’est un cache très puissant et rapide qui s’intercale entre vos clients et votre serveur afin de l’alléger un maximum.
Ses gros points forts :
- Sa haute possibilité de configuration tout en gardant un fichier de configuration fort simple à lire
- Sa configuration transformée en C puis compilée en objet au moment du démarrage du serveur avec la puissance et la vitesse que ça peut permettre vs une lecture de fichier de config ou un langage interprété.
- Une mise en place néanmoins plutôt simple si on ne veut pas trop toucher.
Le commencement
Je vous passe les étapes d’installation et j’imagine que vous voulez directement le lancer en prod.
Qui dit serveur/proxy http dit port 80 et pour cela il vous suffit de remplacer la partie suivante dans le fichier ‘/etc/default/varnish‘
DAEMON_OPTS=”-a :6081 \
-T localhost:6082 \DAEMON_OPTS=”-T localhost:6082 \
Coté serveur (apache)
Et d’ensuite remplacer toute référence au port 80 dans votre fichier de config de votre serveur habituel.
Moi c’est un apache et j’ai du changer dans le fichier ‘ports.conf‘ les directives:
NameVirtualHost *:8888
Listen 8888
Ici j’ai choisi le port 8888. Une idée intéressante pourrait être de limiter l’accès à l’ip qui contient votre serveur Varnish, et empêcher ainsi une connexion directe sur le serveur http.
Il ne faut pas oublier de changer chaque Virtual host qui doit donc contenir une ligne de ce style :
<VirtualHost *:8888>
Varnish Config
Dans le fichier ‘/etc/varnish/default.vcl’ on parle le VCL. Rien de très sorcier et la doc est claire à ce propos.
backend default {
.host = “127.0.0.1”;
.port = “8888”;
}
ça définit le backend sur l’ip localhost et sur le port défini dans apache.
Relancer les deux serveurs devrait suffire à le faire tourner.
Ips incorrectes
Évidemment toutes vos requêtes viennent de 127.0.0.1 maintenant, j’avais trouvé une solution qui s’occupait de faire dire la vérité aux logs d’apache (mais pas aux scripts PHP derrière) mais il y’a mieux :
apt-get install libapache2-mod-rpaf
fera votre bonheur, il s’occupe de récupérer la bonne IP auprès du reverse proxy et d’avoir donc des infos correctes pour vos logs et vos scripts PHP.
Documentation :
- Le langage VCL en détail : https://www.varnish-cache.org/docs/2.1/reference/vcl.html
- Si toutes vos IPs sont 127.0.0.1 : http://geekndev.com/1297-apache2-varnish-corriger-les-ip-des-logs
- Si vous voulez le configurer un peu plus finement (wordpress & phpbb ici): http://blog.inforeseau.com/2011/05/configurer-varnish-cache-avec-virtualhosts-fedora-redhat-centos
- Un exemple de plus pour wordpress (attention il y a un bug dans le fichier de config, je l’ai signalé dans les commentaires à l’auteur) : http://fr.wikitwist.com/defautvcl-de-varnish-wordpress/
- Sans oublier la doc de référence qui tout compte fait se lit relativement vite : https://www.varnish-cache.org/docs/2.1/
Pour aller avec la doc de référence le tit schéma des appels intra -varnish :
Enjoy it ;)
[…] Pour Apache il faut aller tout d’abord modifier le fichier ports.conf à la main et puis utiliser la commande suivante dans le dossier /etc/apache2/sites-enabled comme j’aurai pu le faire dans mon article Varnish (expliquant où il faut changer les ports dans Apache) […]