Varnish devant Apache sur Ubuntu

Varnish devant Apache sur UbuntuJe viens de mettre en œuvre Varnish devant Apache sur une distribution Linux Ubuntu Server LTS Trusty 14.04. Varnish est un proxy inverse qui permet la mise en cache des requêtes vers le serveur Apache. Ce que je perçois de son intérêt, ce sont les gains obtenus au niveau de l’exécution des scripts PHP. Pour le reste, il n’a pas grand intérêt par rapport aux optimisations réalisables dans Apache !

Installation sur de Varnish sur Ubuntu

Elle se fait très classiquement :

aptitude install varnish

Configuration du démon Varnish

Sur Ubuntu, vous devez  éditer le fichier /etc/default/varnish et modifier le port utilisé pour qu’il écoute sur le port 80 :

#DAEMON_OPTS="-a :6081 \
DAEMON_OPTS="-a *:80 \

Configuration de Varnish

C’est l’autre fichier de configuration de Varnish. Le plus important. Il s’agit de /etc/varnish/default.vcl :

backend default {
    #Redirection vers Apache qui écoute sur le port 8080
    .host = "127.0.0.1";
    .port = "8080";
}
sub vcl_fetch {
    #Adresse Ip du client dans les logs du serveur Apache
    remove req.http.X-Forwarded-For;
    set req.http.X-Forwarded-For = client.ip;
    #Gestion du TTL
    if (req.url ~ "\.(css|js|gif|png|je?pg|docx?|pdf|txt|html|xml)(\??.*)$") {
        set beresp.ttl = 86400s;
    }
    if (req.url ~ "\.(php)(\??.*)$") {
        set beresp.ttl = 60s;
    }
}

Configuration d’Apache

Vous devez d’abord changer le port d’écoute du serveur Apache au niveau du fichier /etc/apache2/ports.conf, sur le port 8080 comme indiqué ci-dessus :

Listen 8080

Il convient de modifier le format des logs Apache pour qu’ils disposent de l’adresse Ip du client au niveau du fichier /etc/apache2/apache2.conf :

#LogFormat "%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%{X-Forwarded-For}i %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined

 Vous devez aussi modifier le fichier /etc/apache2/sites-available/000-default.conf :

<VirtualHost *:8080>
    ServerAdmin dszalkowski@gmail.com
    DocumentRoot /var/www/html
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Quelques outils liés à Varnish

varnishlog : affichage des logs
varnishstat : affichage des statistiques d’utilisation
varnishhist : affichage sous forme d’un graphe de l’historique des requêtes effectuées
varnishadm : interface d’administration locale

Documentation

Apache  / Apache Formateur Apache Formateur Linux Formateur Proxy Formateur Ubuntu Server Linux Proxy Reverse proxy Ubuntu Server LTS Varnish 

Commentaires

Pas encore de commentaire.

Laisser un commentaire

(requis)

(requis)