捕获请求响应体

功能说明

在排查问题的时候需要查看请求响应体的内容,这时候可以将请求响应体的输出到访问日志。

这个动作将请求响应体记录在 response_body 的 Nginx 变量中,供访问日志使用。

  • 最大响应体大小:最大捕获的响应体大小,从响应的第一个字节开始捕获,捕获结果存储在 response_body 变量中。单位:字节。

注意: 因为捕获请求体不仅会引入不必要的 CPU 开销,而且会额外消耗大量的内存,同时还产生大量的磁盘写入事件。所以,开启该功能会影响网关的整体性能和请求的响应速度,对用户体验是有直接的影响。因此,开启该功能时应该准确过滤需要目标请求而不要匹配所有请求,在不使用该功能的时候请关闭捕获请求体的动作

示例

首先在 全局配置 - 通用 - 日志 - 访问日志格式 中添加一个新的日志格式。我们将新的格式命名为 req-resp-body。

$request_time $remote_addr $http_host "$request-body" "$response-body"

接着在 应用 - "具体应用" - 设置 - 访问日志 中选择新添加的访问日志格式。

最后我们添加捕获动作,设置最大捕获响应体的体大小为 4096 字节。

至此,所有配置已经完成,让我们发布配置到线上。