nginx日誌中顯示cookie資訊

slovyz發表於2016-12-22
在要新增的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中新增上要新增的變數名。

相關文章