Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Varnish Client IP not logging in Apache Logs

I've configured Varnish 3 with Apache and it is running perfectly alright. However i'm unable to get the Client ip logged in Apache logs. I tried a few solutions googling around with no luck. Right now my Apache access log file is logging the server IP instead of client IP addresses.

Here are my configurations for your kind consideration:

Varnish VCL: (/etc/varnish/default.vlc): http://pastebin.com/PuBqZ6fx

Apache Config

/etc/httpd/conf/httpd.conf

LogFormat "%{X-Forwarded-For}i %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" varnishcombined

Apache Virtual Host

...... Other Stuff ..... ErrorLog logs/fr-error-log CustomLog logs/fr-custom-log varnishcombined ...... Other Stuff .....

Note: Varnish Version installed is varnish-3.0.2-1.el5.x86_64

Thanks. Raheel

like image 896
Raheel Dharolia Avatar asked Apr 05 '12 08:04

Raheel Dharolia


1 Answers

I think you've had a working config in your pastebin example, this should actually do the trick:

if (req.restarts == 0) {
  if (req.http.X-Forwarded-For) {
    set req.http.X-Forwarded-For = req.http.X-Forwarded-For + ", " + client.ip;
  } else {
    set req.http.X-Forwarded-For = client.ip;
  }
}

In your vcl_recv{}.

like image 98
Mojah Avatar answered Sep 20 '22 17:09

Mojah