我想转储 nginx 获取到的特定位置的所有请求,这样我就可以调试遇到的一个奇怪的问题。
通常 tcpdump 是解决方案,但请记住 nginx 是使用 HTTPS 访问的,因此转储安全包是没有用的。
注意:事实上我最感兴趣的是转储全部标头,因为我需要查明是否有任何代理修改了客户端发出的请求。
显然,我已经在客户端使用了 Wireshark 或 Charles,但我得出的结论是,到达服务器的信息与客户端发送的信息不同。
答案1
可以,但仅限于预定义标头。结合nginx 地理模块和一个自定义日志格式。
geo $geo {
default 0;
127.0.0.1/32 1;
192.168.1.0/24 1;
10.1.0.0/16 1;
}
server {
log_format custom '$remote_addr - HEADERS: $sent_http_content_range';
if($geo) {
access_log bad.log custom;
}
}