解决nginx access日志中400 bad request 错误
在access.log中有大量400错误,并以每天几百M的速度增加,占用大量空间.
tail -f
/opt/nginx/logs/access.log
116.236.228.180 - -
[15/Dec/2010:11:00:15 +0800] "-" 400 0 "-" "-"
116.236.228.180 - - [15/Dec/2010:11:00:15 +0800] "-" 400 0 "-"
"-"
116.236.228.180 - - [15/Dec/2010:11:00:15 +0800] "-"
400 0 "-" "-"
116.236.228.180 - - [15/Dec/2010:11:00:15
+0800] "-" 400 0 "-" "-"
116.236.228.180 - -
[15/Dec/2010:11:00:15 +0800] "-" 400 0 "-" "-"
119.97.196.7 - - [15/Dec/2010:11:00:16 +0800] "-" 400 0 "-"
"-"
119.97.196.7 - - [15/Dec/2010:11:00:16 +0800] "-" 400
0 "-" "-"
116.236.228.180 - - [15/Dec/2010:11:00:16 +0800]
"-" 400 0 "-" "-"
116.236.228.180 - -
[15/Dec/2010:11:00:16 +0800] "-" 400 0 "-" "-"
116.236.228.180 - - [15/Dec/2010:11:00:16 +0800] "-" 400 0 "-"
"-"
116.236.228.180 - - [15/Dec/2010:11:00:16 +0800] "-"
400 0 "-" "-"
116.236.228.180 - - [15/Dec/2010:11:00:16
+0800] "-" 400 0 "-" "-"
116.236.228.180 - -
[15/Dec/2010:11:00:16 +0800] "-" 400 0 "-" "-"
116.236.228.180 - - [15/Dec/2010:11:00:16 +0800] "-" 400 0 "-"
"-"
116.236.228.180 - - [15/Dec/2010:11:00:16 +0800] "-"
400 0 "-" "-"
219.243.95.197 - - [15/Dec/2010:11:00:16
+0800] "-" 400 0 "-" "-"
116.236.228.180 - -
[15/Dec/2010:11:00:16 +0800] "-" 400 0 "-" "-"
116.236.228.180 - - [15/Dec/2010:11:00:16 +0800] "-" 400 0 "-"
"-"
网上大把的文章说是HTTP头/Cookie过大引起的,可以修改nginx.conf中两参数来修正.
client_header_buffer_size
16k;
large_client_header_buffers 4 32k;
修改后
client_header_buffer_size
64k;
large_client_header_buffers 4
64k;
没有效果,就算我把nginx0.7.62升到最新的0.8.54也没能解决.
在官方论坛中nginx作者提到空主机头不会返回自定义的状态码,是返回400错误.
http://forum.nginx.org/read.php?2,9695,11560
最后修正如下
改为原先的值
client_header_buffer_size
16k;
large_client_header_buffers 4
32k;
关闭默认主机的日志记录就可以解决问题
server
{
listen *:80 default;
server_name
_;
return 444;
access_log
off;
}
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。