如果你的应用程序放在清漆前面,你如何做日志记录

时间:2015-02-15 07:32:54

标签: caching varnish gateway

清漆背后的逻辑是它永远不会触及你的ruby / php代码库并直接由缓存提供。如果我有一个电子商务网站,并且对于每个类别页面我想记录用户/ IP地址X在哪个时间查看的特定页面,我将这个日志代码放在我的PHP代码中。然而,当我用Varnish运行应用程序时,我失去了所有这些能力。我对网关代理缓存很新,任何人都可以启发我吗?

3 个答案:

答案 0 :(得分:0)

解决此问题最简单有效的方法是创建一个只执行日志记录部分的ajax请求。这样,您仍然可以缓存整个页面,而禁用ajax请求的缓存以使其能够记录所有用户。您将从varnish转发到ajax请求的IP(使用X-Forwarded-For),您可以使用javascript轻松获得的URL并包含在ajax调用中(浏览器引用标头不可靠)。

答案 1 :(得分:0)

一个相当简单的事情是编写一个脚本来解析varnish日志,并检索兴趣页面,ips和其他有趣的信息。它可以每天运行一次或更频繁,具体取决于您的需求。

通过在@Clarence响应中使用ajax请求,您可能不会包含未激活javascript的访问者(但您可以实时获取您的统计信息)

答案 2 :(得分:0)

您可以向Varnish添加一些逻辑来转发IP地址,这样您就可以获得客户端IP和IP的完整网络服务器日志。请求的网址。

此示例适用于apache:Varnish Client IP not logging in Apache Logs

[编辑]以上建议仅适用于缓存未命中。客户端JS推荐。

您还可以考虑使用javascript来轮询包含Google Analytics等信息的服务器。 http://www.google.com/analytics/

相关问题