Home  >  Article  >  Backend Development  >  Nginx log如何记录用户信息

Nginx log如何记录用户信息

WBOY
WBOYOriginal
2016-06-06 20:51:201097browse

现在我的网站是用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的变量参数相关看是否可以配合实现。
另外业务程序上面肯定还要输出其它很多日志,这个是在所难免的。

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn