varnish代理nginx,让nginx记录真实client的ip


   最近在研究学习varnish反向代理+缓存,google了很久之后,实现了让nginx日志记录真实client的ip地址,在这一个是记录一下,一个是给大伙分享下。

我的主要配置如下:

varnish配置文件:

sub vcl_recv {
  #client ip.
  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;
    }
  }

nginx日志相关配置:


log_format  main  '$http_x_forwarded_for - $remote_user [$time_local] "$request" '
                  '$status $body_bytes_sent "$http_referer" ';


之后日志中就能够看到我访问的信息:

192.168.102.126 - - [29/Nov/2013:14:21:24 +0800] "GET /zabbix/styles/themes/originalblue/p_w_picpaths/bg_h-hard_55.png HTTP/1.1" 304 0 "http://172.16.220.241/zabbix/slideconf.php?ddreset=1&sid=fdd3398fd573d331"
192.168.102.126 - - [29/Nov/2013:14:21:24 +0800] "GET /zabbix/p_w_picpaths/general/sort_up.png HTTP/1.1" 304 0 "http://172.16.220.241/zabbix/slideconf.php?ddreset=1&sid=fdd3398fd573d331"
192.168.102.126 - - [29/Nov/2013:14:21:24 +0800] "GET /zabbix/p_w_picpaths/gradients/menu_not_active.gif HTTP/1.1" 304 0 "http://172.16.220.241/zabbix/slideconf.php?ddreset=1&sid=fdd3398fd573d331"
192.168.102.126 - - [29/Nov/2013:14:21:24 +0800] "GET /zabbix/p_w_picpaths/general/zabbix.png HTTP/1.1" 304 0 "http://172.16.220.241/zabbix/slideconf.php?ddreset=1&sid=fdd3398fd573d331"


这和网上别的帖子基本没什么区别,而且还没有他们的详细,但这里有个特别需要注意的地方,不然你怎么配置都不会生效的:

一定要保证在varnish的配置中,关于x-forward的部分位于vcl_revc的最前面。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章