线上的日志中有些请求可能以通过参数中的ID来直接定位到用户,但有些请求没有什么特殊标识,APP请求客户端时多会带上唯一标识请求字段比较好处理,不过在现成的系统中如果要支持增加唯一ID的区分的话可以考虑使用cookie中的值来区分比较高效方便。本文地址:http://www.04007.cn/article/765.html,未经许可,不得转载.
获取方式是$cookie_{value_key}。nginx中可以直接取cookie中的值来记录到日志中,例如我们要获取cookie中一个字段名称为uid的值,可以在nginx日志中直接使用变量$cookie_uid来获取。日志示例如下:本文地址:http://www.04007.cn/article/765.html,未经许可,不得转载.
log_format main '$remote_addr $remote_user $host $status $cookie_COOKIE字段名称 $body_bytes_sent';本文地址:http://www.04007.cn/article/765.html,未经许可,不得转载.
不过要注意nginx中的变量规范,nginx变量必须只能是字母或者_,如果有不只包括这些字符的字段的话通过上面的方法无法获取,这时可以考虑使用正则匹配获取本文地址:http://www.04007.cn/article/765.html,未经许可,不得转载.
set $cookval ""; if ( $http_cookie ~* "不规范的字段名=(.+?)(?=;|$)" ) { set $cookval $1; }本文地址:http://www.04007.cn/article/765.html,未经许可,不得转载.
本文地址:http://www.04007.cn/article/765.html 未经许可,不得转载. 手机访问本页请扫描右下方二维码.
![]() |
![]() |
手机扫码直接打开本页面 |