关于nginx日志增加cookie信息

操作系统:Ubuntu 18.04,nginx 1.14.0

1. 修改nginx.conf配置文件

首先,需要打开nginx配置文件nginx.conf,找到http {}段,确保以下配置开启:

http {
    ......
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    ......
}

以上配置中log_format定义了日志的格式,access_log定义了日志的存储路径和日志格式。

2. 增加cookie信息

要将cookie信息添加到日志中,必须使用nginx的HttpSetMiscModule扩展模块。

2.1 下载HttpSetMiscModule

在终端中执行以下命令下载HttpSetMiscModule

cd /tmp
wget https://github.com/openresty/set-misc-nginx-module/archive/v0.32.tar.gz
tar -xzvf v0.32.tar.gz

2.2 安装HttpSetMiscModule

执行以下命令,编译安装HttpSetMiscModule模块:

cd /path/to/nginx/source
./configure --add-module=/tmp/set-misc-nginx-module-0.32
make && make install

2.3 修改nginx.conf

nginx.conf中添加以下配置:

http {
    ......
    set $real_cookie $http_cookie;

    log_format withcookie '$remote_addr - $remote_user [$time_local] '
                           '"$request" $status $body_bytes_sent '
                           '"$http_referer" "$http_user_agent" '
                           '"$http_x_forwarded_for" "$real_cookie"';

    access_log /var/log/nginx/access.log withcookie;
    ......
}

以上配置中,set $real_cookie $http_cookie;将请求中的cookie信息存储在变量$real_cookie中。

withcookie是自定义的日志格式,其中"$real_cookie"即为上面提到的存储cookie信息的变量。

access_log /var/log/nginx/access.log withcookie;即指定日志格式为withcookie

3. 启动nginx

修改完nginx.conf后,执行以下命令重启nginx服务:

sudo service nginx restart

现在,访问网站时,就可以在日志中看到请求发送的cookie信息了。

例如,访问地址http://www.example.com,在access.log中的日志记录如下:

192.168.0.1 - - [15/Dec/2021:01:11:53 +0800] "GET / HTTP/1.1" 200 26722 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.45 Safari/537.36" "-" "COOKIE_VALUE"

日志记录中的"COOKIE_VALUE"即为请求时发送的cookie信息。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:关于nginx日志增加cookie信息 - Python技术站

(0)
上一篇 2023年5月16日
下一篇 2023年5月16日

相关文章

  • nginx与php配置用户问题

    当配置nginx的nginx.conf 时,可参照如下配置: server {   listen 80;   server_name www.advancephp2017.com;   access_log logs/advance.access.log;   root /home/andrewghost/www/advancephp;   location…

    Nginx 2023年4月11日
    00
  • nginx 变量相关的map模块与split_clients模块及geo模块和geoip模块及keepalive介绍

    map 模块指令默认编译进nginx的 Syntax: map string $variable { … } # 表示string匹配到{}里的值或变量赋值给$variable Default: — Context: http Syntax: map_hash_bucket_size size; Default: map_hash_bucket_size…

    Nginx 2023年4月13日
    00
  • Nginx 处理Http请求简单流程

    L45 1:三次握手后 系统内核收到请求根据端口负载均衡的分配到某个worker  2:nginx 会分配一个512byte链接内存池 3:初始化nginx的http模块并等待用户请求,假设用户在client_header_timeout指令设置的值内还没再次请求,则链接超时 4:处理用户发送请求(处理链接和处理请求还是有很大区别的,以下是处理请求操作需要校…

    Nginx 2023年4月13日
    00
  • windows nginx安装与开机启动

    打开nginx官网 http://nginx.org/en/download.html 选择一个稳定版本Stable version 下载到自己硬盘,文件夹命名为英文,比如 nginx-1.14.0 下载好后解压到文件夹里面,里面有个nginx.exe 在系统环境变量里添加上path路径   打开https://github.com/kohsuke/wins…

    Nginx 2023年4月11日
    00
  • 通过nginx实现多个域名访问同一个服务器 一台服务器通过nginx配置多个域名(80端口)

     参考:https://www.cnblogs.com/ruanjianlaowang/p/11182486.html 1. 问题描述 多个域名对应一个服务器,为了避免域名后增加端口号,两个域名都需要占用80端口号,使用nginx来进行配置。 2. 解决方案 目前项目中,线上正在使用(100%可用)多域名对应一个服务器情况(线上ip及域名替换了下) #use…

    Nginx 2023年4月10日
    00
  • 详解基于CentOS 7配置Nginx自启动

    我来为您详细讲解如何在CentOS 7上配置Nginx自启动的完整攻略。 1. 安装Nginx 在安装Nginx之前,您需要确保已经安装了EPEL存储库和更新的系统。然后,您可以使用以下命令在CentOS 7上安装Nginx: sudo yum install nginx 2. 配置Nginx 安装Nginx后,需要配置Nginx以便它在启动时自动启动。这可…

    Nginx 2023年5月16日
    00
  • [Nginx] 博客园出现了502错误该怎么追查原因

    博客园从今天上午就开始报502错误 , 他的原因还不知道 , 暂时先说下我们遇到502的排查情况 最大的可能性就是后端的服务不能支撑前端过来的tcp请求连接,包括连接数据库服务时的连接数问题   1. php-fpm的进程是否启动 ,没启动肯定报这个错误 2. tcp连接数超过了fpm的进程数 netstat -altupn|grep EST|grep ph…

    2023年4月9日
    00
  • Nginx上传文件全部缓存解决方案

    这里给您介绍一下关于“Nginx上传文件全部缓存解决方案”的完整攻略。 现象描述 在使用Nginx作为文件服务器的时候,可以通过proxy_max_temp_file_size限制上传文件大小,但是只要超过临界值,文件就会被全部缓存到临时文件夹中,这样会引起磁盘空间被占满,甚至还会影响网站的正常访问。 解决方案 针对上述问题,我们可以采取以下的解决方案: 设…

    Nginx 2023年5月16日
    00
合作推广
合作推广
分享本页
返回顶部