在使用nginx记录访问日志时,发现在含有 request_body
的 PUT
, POST
请求时,日志中会含有 x22
x9B
x5C
x09
x08
字符,不利于阅读和处理。
具体 支持 request_body
的http method参见 http1.1定义 9 Method Definitions
和 Payloads of HTTP Request Methods
nginx.conf
默认access_log 配置
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"'
'$http_host $upstream_status $upstream_addr $request_time $upstream_response_time';
改成
重点: js

该博客主要讨论了在使用nginx记录PUT和POST请求的request_body时,遇到的包含x22 x9B x5C x09 x08等特殊字符的问题,这导致日志难以阅读和处理。博主提供了从1.11.8版开始的nginx新特性`escape=json`来解决这个问题,通过修改`log_format`为JSON格式,使日志更便于分析。此外,还提及了对于旧版本nginx如何通过shell命令或logstash的ruby处理来替换特殊字符。
最低0.47元/天 解锁文章
4437

被折叠的 条评论
为什么被折叠?



