>백엔드 개발 >PHP 튜토리얼 >Nginx log如何记录用户信息

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으로 문의하세요.