解决nginx访问日志记录post数据

1. 问题描述

nginx 在获取post数据时候,如果是中文,则转换成16进制显示在日志文件中,如下图所示。


日志格式为: log_format postdata '$remote_addr | $request_body | $resp_body';

此篇文章记录下解决此次问题的过程。

最新版本解决方式

适合nginx 1.11.8 以上版本

在nginx 1.11.8 以上版本中log_format 增加了escape=json 参数,在配置日志格式时加上此参数可以不转义变量内容,官方文档-参数说明

日志配置

log_format postdata '$remote_addr | $request_body | $resp_body';
log_format postdata escape=json '$remote_addr | $request_body | $resp_body';

日志输出


第一条日志是不加 escape=json  参数后, log_format 输出的
第二条日志是加上 escape=json  参数后, log_format 输出的


你可能感兴趣的:(文档类,应用服务器技术)