我想要在一个nginx访问日志中包含cookie数据,如下所示:
(简单例子)
log_format foo '$remote_addr "$request" $cookie_bar'; access_log /var/log/nginx/access.log foo;
这对已经有一个cookie“bar”的请求很有效,但是对于我的服务器的第一个请求,nginx会报告“ – ”作为“bar”的值。
看来我的问题是,nginx正在查看Cookie值的请求标头。 有没有办法检查响应中的Set-Cookie并将其用作后备?
我发现了一个解决scheme,我的问题,但它并不能解决问题。
nginx允许您将响应头元素传递到日志文件中,如Set-Cookie:
log_format foo '$remote_addr "$request" ' '$cookie_bar set_cookie=$sent_http_set_cookie';
不幸的是,它只输出第一个Set-Cookie命令,所以我需要确保我的应用服务器总是首先设置条形码cookie。 有了一个正则expression式,如果没有设置$cookie_bar我可以确保抓取$sent_http_set_cookie设置的cookie。
您是否在设置cookie之后考虑使用redirect,并在下一个请求中执行相应的操作?