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;