nginx日志记录post的参数
nginx的日志通过调整log_format格式可以记录所有请求信息
回答群里盆友一个问题
nginx 日志,可以记录post的参数吗?
答:可以实现,通过设置log_format指令的参数。
log_format指令是用来控制nginx如何记录http请求。
默认的nginx记录日志格式是注释掉的,如果要记录额外的信息,需要自定义log_format格式。
log_format的参数都是nginx内嵌变量,具体含义详见nginx内置变量
默认日志格式
1 2 3 |
#log_format main '$remote_addr - $remote_user [$time_local] "$request" ' # '$status $body_bytes_sent "$http_referer" ' # '"$http_user_agent" "$http_x_forwarded_for"'; |
记录post请求参数的日志格式
1 2 3 |
log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '"$http_referer" $status $body_bytes_sent $request_body ' '"$http_user_agent" "$http_x_forwarded_for"'; |
其实就是增加$request_body字段到log_format里。
如果为了调试程序可以打开开该字段,不然不推荐记录,以免泄露信息给恶意攻击者。
@bxiginemfhdl
新版看这里
最新的nginx_version 1.9.9,不支持楼主说的这种方式了