A maneira como resolvo isso é garantir que o Apache obtenha o IP do visitante real mesmo quando as solicitações passam pelo cache de verniz. Eu uso o mod_rpaf do Apache para isso (veja link ).
Além disso, apenas no caso de o pedido do cliente também passar por algum proxy que defina o cabeçalho X-Forwarded-For, eu o redefino na minha instância de cache de verniz (em vcl_recv):
remove req.http.X-Forwarded-For;
set req.http.X-Forwarded-For = client.ip;
Em seguida, informe também ao verniz para nunca armazenar em cache a resposta para / server-status e / server-info. O seguinte (também em vcl_recv) funciona para mim:
if (req.url ~ "server-(info|status)") {
return (pass);
}