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_]*)" ){
}
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中添加上要添加的变量名。