操作系统: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技术站