Nginx log如何记录用户信息

WBOY
WBOYオリジナル
2016-06-06 20:51:201142ブラウズ

现在我的网站是用Nginx+php,现在想要统计来访的登录用户,观察一个人在网站上的足迹。不想用php来做,因为每一个访问都要做一次记录,php做效率不高,想直接打印在nginx access log里。
我想到的方案是:在日志里记录每一个条访问来自于哪个用户(如果是登录用户就记录用户ID,没有登录的也能给他一个key值,用来标示他的身份),然后结合nginx access log记录的其他内容就可以做比较好看的统计数据报告了。
问题是,我不知道该怎么去做这个记录。。。又不能在每一个用户的URL上带上他的ID。。。

回复内容:

现在我的网站是用Nginx+php,现在想要统计来访的登录用户,观察一个人在网站上的足迹。不想用php来做,因为每一个访问都要做一次记录,php做效率不高,想直接打印在nginx access log里。
我想到的方案是:在日志里记录每一个条访问来自于哪个用户(如果是登录用户就记录用户ID,没有登录的也能给他一个key值,用来标示他的身份),然后结合nginx access log记录的其他内容就可以做比较好看的统计数据报告了。
问题是,我不知道该怎么去做这个记录。。。又不能在每一个用户的URL上带上他的ID。。。

这个简单。。在页面上搞一个ajax请求,URL带上UID就行了,nginx肯定会记下来,而且相应的log也很容易提取出来。

为了更灵活的处理日志格式,建议你直接选用ngx_lua模块。这样的话就可以自定义日志格式了,记录也可以直接导入数据库处理,非常的方便。

我没有太清晰的思路, 不过我觉得nginx能做到应该是http协议层面的东西,有关http相关的数据都可以记录下,但是涉及到ID业务级别的东西,恐怕不好做。如果想做也需要程序和nginx的变量参数相关看是否可以配合实现。
另外业务程序上面肯定还要输出其它很多日志,这个是在所难免的。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。