url - nginx/redis 和处理 url 中的跟踪参数

标签 url nginx tracking redis

我在我的网站中使用 nginx 和 redis。对于我网站上的几个项目,我想将跟踪参数添加到它们的网址中,以便当用户单击某个项目时,除了提供用户请求的内容之外,我还可以收集用户使用情况的统计信息。我正在寻找有关如何从 nginx 捕获 redis 中的统计信息的方法,即无需访问后台应用程序。

例如,假设我的页面上有几行表格,每个表格都以行/列格式保存项目。因此,对于 {table: 2, row: 1, column: 3} 中的项目,如果实际网址为:www.mysite.com/news/dodi,那么我想嵌入网址:www.mysite.com/news/dodi/day=29?表=2&行=1&列=3。当用户点击它时,nginx将访问redis来获取内容并更新相应的统计信息(这里可以是增量day-29,table-2,...)。

关于如何在不点击后台应用程序的情况下实现此目的有什么建议吗?

最佳答案

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

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

http://wiki.nginx.org/Nginx3rdPartyModules#HTTP_Redis_Module

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

关于url - nginx/redis 和处理 url 中的跟踪参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1935382/

相关文章:

java - UnknownHostException Android utf-8 编码 URL

python - Flask Nginx uWSGI 504 网关超时错误

python - Python中实例方法使用情况的跟踪/记录

JavaScript:动态执行跟踪代码

c++ - 从哪里获取 matlab 库(libmat 和 libmx)

Javascript : innerHTML. 替换使用 URL

web-services - 网站 url-config 中 url 中的可选尾部斜杠

javascript - 从网址中提取

mysql - PHP session 不会转移到其他页面

php - 为什么 $_SERVER ["SERVER_PROTOCOL"] 在客户端使用 HTTP/1.1 时显示 HTTP/1.0