当 Nginx 是安全的时候,如何转储特定位置的 Nginx 请求?

当 Nginx 是安全的时候,如何转储特定位置的 Nginx 请求?

我想转储 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;
  }
}

相关内容