一、获取全部cookie信息

  这个比较方便,直接在nginx.conf文件中添加$http_cookie

  1. log_format main
  2. '[$time_local] - $remote_addr:$remote_port - $remote_user - $upstream_addr $upstream_status $upstream_response_time - '
  3. '"$request" $status $bytes_sent $request_time '
  4. '"$http_referer" - "$http_user_agent" '
  5. '"$http_cookie"';
  6.  
  7. # 增加一个 $http_cookie

  第二步,在server 中的access.log 后加上  main

  1. access_log logs/item_access.log main;
  2. error_log logs/item_error.log ;

二、获取单个cookie的值

  有时候要是是觉得某个cookie很重要,需要单独取出来,免得去一堆麻烦

  首先,也是在nginx.conf文件中定义一个值,如 $my_cookie 

  1. log_format main
  2. '[$time_local] - $remote_addr:$remote_port - $remote_user - $upstream_addr $upstream_status $upstream_response_time - '
  3. '"$request" $status $bytes_sent $request_time '
  4. '"$http_referer" - "$http_user_agent" '
  5. '"$my_cookie" "$http_cookie"';
  6.  
  7. # 这边定义了 $my_cookie 和 $http_cookie其实都能取到
  8. # $my_cookie只能取到 value

  其次还是要改server 中的内容,

  1. server {
  2. listen 80;
  3. server_name XXXX.****.com ;
  4. access_log logs/item_access.log main; # main 需要
  5. error_log logs/item_error.log ;
  6. set $my_cookie "";
  7. if ($http_cookie ~* "my_cookie=(.+?)(?=;|$)") {
  8. set $my_cookie $1;
  9. }

  

三、获取多个cookie的值

  如果觉得不止一个cookie的值重要,比如有两个cookie需要取出来,如何呢?重复第二步的动作

  • 在nginx.conf 日志格式中增加也该 $my_cookie2 的变量
  • 再在server 段中增加一个 set $my_cookie2那部分
  1. log_format main
  2. '[$time_local] - $remote_addr:$remote_port - $remote_user - $upstream_addr $upstream_status $upstream_response_time - '
  3. '"$request" $status $bytes_sent $request_time '
  4. '"$http_referer" - "$http_user_agent" '
  5. '"$my_cookie" - "$my_cookie2" - "$http_cookie"';

  

  1. server {
  2. listen 80;
  3. server_name XXXX.***.com ;
  4. access_log logs/item_access.log main; # main 需要
  5. error_log logs/item_error.log ;
  6. set $my_cookie "";
  7. if ($http_cookie ~* "my_cookie=(.+?)(?=;|$)") {
  8. set $my_cookie $1;
  9. }
  10.  
  11. set $my_cookie2 "";
  12. if ($http_cookie ~* "my_cookie2=(.+?)(?=;|$)") {
  13. set $my_cookie2 $1;
  14. }

  我这边是实现了,但是命名不一样,大家自己尝试吧。

nginx日志增加cookie信息的更多相关文章

  1. nginx日志配置(cookie,header,post等字段记录)

    如果你对nginx日志格式,有这样那样的要求. 那么就看一下说明吧. $remote_addr The remote host $remote_user The authenticated user ...

  2. 自定义Nginx日志格式获取IP地址的省市份信息

    注:图片如果损坏,点击文章链接:https://www.toutiao.com/i6806672112477012493/ 在linux中nginx日志产生的格式是下面的配置: $remote_add ...

  3. nginx 日志变量含义

    log_format logstash "remote_addr | $time_local | $request | $status | $body_bytes_sent | " ...

  4. nginx日志分析利器GoAccess

    面试的时候一定会被面到的问题是:给出web服务器的访问日志,请写一个脚本来统计访问前10的IP有哪些?访问前10的请求有哪些?当你领略过goaccess之后,你就明白,这些问题,除了考验你的脚本背诵记 ...

  5. 使用elk+redis搭建nginx日志分析平台

    elk+redis 搭建nginx日志分析平台 logstash,elasticsearch,kibana 怎么进行nginx的日志分析呢?首先,架构方面,nginx是有日志文件的,它的每个请求的状态 ...

  6. Nginx日志导入到Hive0.13.1,同步Hbase0.96.2,设置RowKey为autoincrement(ID自增长)

    ---------------------------------------- 博文作者:迦壹 博客地址:Nginx日志导入到Hive,同步Hbase,设置RowKey为autoincrement( ...

  7. nginx(四)初识nginx日志文件

    nginx 日志相关指令主要有两条,一条是log_format,用来设置日志格式,另外一条是access_log,用来指定日志文件的存放路径.格式和缓存大小,通俗的理解就是先用log_format来定 ...

  8. nginx日志配置[转]

     * * * sh /home/zyf/sh/cut_nginx_log.sh 这样就每天的0点1分把nginx日志重命名为日期格式,并重新生成今天的新日志文件。 日志对于统计排错来说非常有利的。本文 ...

  9. Nginx 日志文件切割

    Nginx 是一个非常轻量的 Web 服务器,体积小.性能高.速度快等诸多优点.但不足的是也存在缺点,比如其产生的访问日志文件一直就是一个,不会自动地进行切割,如果访问量很大的话,将 导致日志文件容量 ...

随机推荐

  1. access数据库频繁读取操作会出现 System.Data.OleDb.OleDbException 的异常解决

    asp.net access数据库 本来想着打开一个access数据库连接后,不关闭,下次操作数据了,直接拿来用,谁知道连着测试64次后(大概这么多次),就会出现System.Data.OleDb.O ...

  2. Amazon及其亏本诱饵策略还能坚持多久?

    Amazon 刚刚公布了最新的财报,亏损 4100 万美元.这是这家电子商务巨头连续 5 个季度以来的第 3 次亏损.但是华尔街似乎却一片叫好声,当日 Amazon 的股价也涨了近 8 个点达 359 ...

  3. mariadb BINLOG_FORMAT = STATEMENT 异常

    当在mariadb中插入数据是报 InnoDB is limited to row-logging 异常: java.sql.SQLException: Cannot execute statemen ...

  4. "群英队"电梯演讲

    视频如下: https://imgcache.qq.com/tencentvideo_v1/playerv3/TPout.swf?max_age=86400&v=20161117&vi ...

  5. PHP 函数总结

    感觉对函数了解的不够深,从头到尾梳理一遍(更新中....) 1,class_exists(),interface_exists(),method_exists(),get_class(),get_pa ...

  6. HDU 1277 Nested Dolls

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1677 题意: 玩俄罗斯套娃,问最后至少还剩几个. 题解: 这题可以和拦截导弹做对比,因为这里是二维的 ...

  7. Java GUI 点击按钮退出

    import java.awt.*; import java.awt.event.*; public class TestFrameTwo implements ActionListener { Fr ...

  8. Microsoft Orleans 之安装

    先决条件 Orleans 是一个.net 类库集,为了使用它,你需要.net 4.5.1 或者更高版本,开发工具集需要visual studio 2015 或者更高版本或者其他支持的开发工具,不支持V ...

  9. mysql子查询批量找id最大的

    $sql = "select a.id as max_id,a.uid from(SELECT `uid`, idFROM (`users_level_change_log`)WHERE ` ...

  10. linux下c/c++的文件操作

    opendir,readdir,closedir, stat()查询文件状态 open(), O_TRUNC这个Flag会把打开的文件清零... 文件锁:fcntl, F_GETLK , F_SETL ...