Varnish és un accelerador d'aplicacions Web. Varnish normalment es posa davant del servidor web per guardar les pàgines web en memòria cache i servir-les al client de manera molt ràpida. De manera que el servidor web sols rep peticions de Varnish.

Que servidor web sols rebi peticions de Varnish fa que per defecte en els logs del servidor web no guardi la IP real del client que es connecta, sinó que sols es guarda la IP del Varnish.

En cas que utilitzem un servei d'estadístiques local o en cas de necessitat de debugar les connexions al servidor web, es necessari que aquest registri la IP real del client a més de la del Varnish.

Per guardar la IP del client en el servidor web, cal configurar en el format del log que registri la capçalera http X-Forwarded-For. La capçalera X-Forwarded-For la envia Varnish al servidor Web.

Per exemple de configuració en un servidor nginx:


log_format main '$remote_addr - $remote_user [$time_local] '
'"$request" $status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"' ;
access_log /var/log/nginx/access.log main;