光油客户端IP在Apache日志不记录(Varnish Client IP not logging

2019-06-23 10:11发布

我与Apache配置清漆3,它是运行完全没有问题。 但是我无法获得登录Apache日志客户端IP。 我尝试了一些解决方案,没有运气周围google搜索。 现在我的Apache的访问日志文件记录服务器的IP,而不是客户端的IP地址。

下面是我对您的关照配置:

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

Apache的配置

/etc/httpd/conf/httpd.conf中

的LogFormat “%{X - 转发,对于}则i%升%U%T \” %r \ “%>取值%B \ ”%{Referer的} I \“ \ ”%{用户代理} I \“” varnishcombined

Apache虚拟主机

......其他的东西.....错误日志记录/ FR-错误日志的CustomLog日志/ FR-自定义日志varnishcombined ......其他的东西.....

注意:安装光油版本是清漆,3.0.2-1.el5.x86_64

谢谢。 Raheel

Answer 1:

我想你已经在你的引擎收录例如有一个工作的配置,这实际上应该做的伎俩:

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;
  }
}

在您的vcl_recv {}。



Answer 2:

如在评论中提到的OP,所述溶液是Apache模块。 光油增加了X-Forwarded-For默认头。

然后像Apache模块mod_rpaf (阿帕奇2.2)或mod_remoteip (阿帕奇2.4)将设置remote_ip正值加到一个由通过在X-Forwarded-For标头。

这提供了一个更强大的解决方案不是简单地记录了X - 转发,对于头的值到您的Apache日志。 例如,它可以让你访问2级相同的IPS现场,通过光油或直接,正如你所期望的网站功能并正确记录。



Answer 3:

该行添加到您的VCL

sub vcl_recv {
  # Add a unique header containing the client address
  remove req.http.X-Forwarded-For;
  set    req.http.X-Forwarded-For = client.ip;

}

然后改变的apache的日志格式

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

现在在你的虚拟主机

<VirtualHost *:8080>
  ServerName www.abc.com

  CustomLog /var/log/httpd/www.abc.com/access.log varnishcombined

</VirtualHost>


文章来源: Varnish Client IP not logging in Apache Logs