共计 2867 个字符,预计需要花费 8 分钟才能阅读完成。
Nginx 日志增加 cookie 信息
一、获取全部 cookie 信息
这个比较方便,直接在 nginx.conf 文件中添加 $http_cookie
log_format main
‘[$time_local] – $remote_addr:$remote_port – $remote_user – $upstream_addr $upstream_status $upstream_response_time – ‘
‘”$request” $status $bytes_sent $request_time ‘
‘”$http_referer” – “$http_user_agent” ‘
‘”$http_cookie”‘;
# 增加一个 $http_cookie
第二步,在 server 中的 access.log 后加上 main
access_log logs/item_access.log main;
error_log logs/item_error.log ;
二、获取单个 cookie 的值
有时候要是是觉得某个 cookie 很重要,需要单独取出来,免得去一堆麻烦
首先,也是在 nginx.conf 文件中定义一个值,如 $my_cookie
log_format main
‘[$time_local] – $remote_addr:$remote_port – $remote_user – $upstream_addr $upstream_status $upstream_response_time – ‘
‘”$request” $status $bytes_sent $request_time ‘
‘”$http_referer” – “$http_user_agent” ‘
‘”$my_cookie” “$http_cookie”‘;
# 这边定义了 $my_cookie 和 $http_cookie 其实都能取到
# $my_cookie 只能取到 value
其次还是要改 server 中的内容,
server {
listen 80;
server_name XXXX.****.com ;
access_log logs/item_access.log main; # main 需要
error_log logs/item_error.log ;
set $my_cookie “”;
if ($http_cookie ~* “my_cookie=(.+?)(?=;|$)”) {
set $my_cookie $1;
}
三、获取多个 cookie 的值
如果觉得不止一个 cookie 的值重要,比如有两个 cookie 需要取出来,如何呢?重复第二步的动作
•在 nginx.conf 日志格式中增加也该 $my_cookie2 的变量
•再在 server 段中增加一个 set $my_cookie2 那部分
log_format main
‘[$time_local] – $remote_addr:$remote_port – $remote_user – $upstream_addr $upstream_status $upstream_response_time – ‘
‘”$request” $status $bytes_sent $request_time ‘
‘”$http_referer” – “$http_user_agent” ‘
‘”$my_cookie” – “$my_cookie2” – “$http_cookie”‘;
—————————————————————————
server {
listen 80;
server_name XXXX.***.com ;
access_log logs/item_access.log main; # main 需要
error_log logs/item_error.log ;
set $my_cookie “”;
if ($http_cookie ~* “my_cookie=(.+?)(?=;|$)”) {
set $my_cookie $1;
}
set $my_cookie2 “”;
if ($http_cookie ~* “my_cookie2=(.+?)(?=;|$)”) {
set $my_cookie2 $1;
}
我这边是实现了,但是命名不一样,大家自己尝试吧。
下面关于 Nginx 的文章您也可能喜欢,不妨参考下:
Nginx 403 forbidden 的解决办法 http://www.linuxidc.com/Linux/2017-08/146084.htm
CentOS 7 下 Nginx 服务器的安装配置 http://www.linuxidc.com/Linux/2017-04/142986.htm
CentOS 上安装 Nginx 服务器实现虚拟主机和域名重定向 http://www.linuxidc.com/Linux/2017-04/142642.htm
CentOS 6.8 安装 LNMP 环境(Linux+Nginx+MySQL+PHP)http://www.linuxidc.com/Linux/2017-04/142880.htm
Linux 下安装 PHP 环境并配置 Nginx 支持 php-fpm 模块 http://www.linuxidc.com/Linux/2017-05/144333.htm
Nginx 服务的 SSL 认证和 htpasswd 认证 http://www.linuxidc.com/Linux/2017-04/142478.htm
Ubuntu 16.04 上启用加密安全的 Nginx Web 服务器 http://www.linuxidc.com/Linux/2017-07/145522.htm
Linux 中安装配置 Nginx 及参数详解 http://www.linuxidc.com/Linux/2017-05/143853.htm
Nginx 日志过滤 使用 ngx_log_if 不记录特定日志 http://www.linuxidc.com/Linux/2014-07/104686.htm
CentOS 7.2 下 Nginx+PHP+MySQL+Memcache 缓存服务器安装配置 http://www.linuxidc.com/Linux/2017-03/142168.htm
CentOS6.9 编译安装 Nginx1.4.7 http://www.linuxidc.com/Linux/2017-06/144473.htm
Nginx 的详细介绍:请点这里
Nginx 的下载地址:请点这里
本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-11/148217.htm