nginx日志编码突然变成十六进制

2019-04-01  本文已影响0人  运维大湿兄

问题描述:

查看nginx日志,突然变成看不懂的字符,例如:xE6\xBC\x94\xE7\xA4\xBA\xE7\xAB\x99。


乱码图片.png

猜想是nginx编码问题,里面上网查找。

网上搜索的解决办法有:

1.改编码

编辑conf下面的nginx.conf

在server段里加以下两行

default_type 'text/html';
charset utf-8;

然后重启。

这个方法我起了作用

2.还有设置日志格式主编码:

设置转义方式,这个方法我试过escape=none或者json都无效,应该是这个方法是针对nginx 1.11.8 以上版本

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

通过nginx -v命令得知,我安装的nginx版本是1.9.3的,
nginx version: openresty/1.9.3.1

3.针对这个版本的nginx,采用以下方法也可以解决:

直接在 nginx.conf的记录日志的location部分里面配置下面这一行就好了:

log_escape_non_ascii off;
上一篇下一篇

猜你喜欢

热点阅读