nginx的日志通过调整log_format格式可以记录所有请求信息
回答群里盆友一个问题
nginx 日志,可以记录post的参数吗?
答:可以实现,通过设置log_format指令的参数。
log_format指令是用来控制nginx如何记录http请求。
默认的nginx记录日志格式是注释掉的,如果要记录额外的信息,需要自定义log_format格式。
log_format的参数都是nginx内嵌变量,具体含义详见nginx内置变量
默认日志格式
#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';
记录post请求参数的日志格式
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里。
如果为了调试程序可以打开开该字段,不然不推荐记录,以免泄露信息给恶意攻击者。