nginx / redis和处理URL跟踪参数

我在我的网站上使用nginx和redis。 对于我的网站上的几个项目,我想添加跟踪参数到他们的url,以便当用户点击一个项目时,我可以收集用户请求的内容用户服务的统计数据。 我正在寻找如何从nginx获取redis中的统计信息的方法,也就是说,不需要打开后台应用程序。

例如,假设我在页面上有几行表格,每个表格都以行/列格式保存着项目。 因此,对于{table:2,row:1,column:3}中的项目,如果实际的url是:www.mysite.com/news/dodi,那么我想要embeddedurl:www.mysite.com/news /多迪/天= 29?表= 2&行= 1&柱= 3。 当用户点击它时,nginx会触发redis来获取内容,并更新相应的统计信息(这里可以是第29天,第2天……)。

任何build议我如何实现这一点,而不击中背景应用程序?

对于跟踪参数,请将此类工作保留在用户请求的范围之外。 不要让他们支付统计跟踪的延迟惩罚。 Cron一个从access.log提取参数并更新redis和/或数据库的脚本。

在缓存内容方面,最近发布了一个nginx的redis模块,其工作方式与memcached模块非常相似。 目前只实现了GET和SELECT。 假设您的应用程序正在填充缓存。

http://wiki.nginx.org/Nginx3rdPartymodulees#HTTP_Redis_modulee

样本nginx.conf:

http { ... server { location / { set $redis_db "0"; set $redis_key "$uri?$args"; redis_pass 127.0.0.1:6379; error_page 404 502 504 = @fallback; } location @fallback { proxy_pass backed; } } }