nginx日志中显示cookie信息

时间:2022-10-30 19:01:36
在要添加的server中配置(主要添加的地方都标红了)
log_format  main_cookie  '$remote_addr - $remote_user [$time_local] "$request" '
                         $request body '$status $body_bytes_sent "$http_referer" '
                         '"$http_user_agent" "$http_x_forwarded_for" $request_time $upstream_response_time $xxxCookie ';

server

{

     listen 80;
     server_name  www.xxx.com;
     set $xxxCookie "";

     #此处如果想取全部cookie 可以写成

     #if ( $http_cookie ~* "(.*)$" ){

     if ( $http_cookie ~* "xxxCookie=([A-Za-z0-9_]*)" ){

         set $xxxCookie $1;
     }

     access_log logs/www.xxx.com.log/www.xxx.com_access.log main_cookie;
     error_page 403 503 /503.html;

     location / {
         proxy_pass http://www.xxx.com;
         proxy_set_header X-Real-IP $remote_addr;
         client_max_body_size 100m;
         ....
     }
}
说明:server中第一处的意思是:定义一个xxxCookie变量,变量的内容从http的cookie去取,取的规则是匹配后面的正则xxxCookie=([A-Za-z0-9_]*),其实http_cookie这个里面的值是一个一个cookie的值,中间以“;”分隔。

在log_format  main_cookie中添加上要添加的变量名。