Varnish es un acelerador de aplicaciones Web.  Varnish normalmente se pone delante del servidor web para guardar las páginas web en memoria cache y servirlas al cliente de forma muy rápida. De modo que el servidor web sólo recibe peticiones de  Varnish.

Que el servidor web sólo reciba peticiones de  Varnish hace que por defecto en los logs del servidor web nse o guarde la IP real del cliente que se conecta, sino que sólo se guarda la IP del  Varnish.

En caso de utilizar un servicio de estadísticas local o en caso de necesidad de debug las conexiones al servidor web, es necesario que este registre en el log la IP real del cliente además de la del  Varnish.

Para guardar la IP del cliente en ellog del  servidor web, es necesario configurar en el formato del log que registre la cabecera http X-Forwarded-For. La cabecera X-Forwarded-For la envía  Varnish al servidor Web.

Ejemplo de configuración 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;