nginx服务器access日志中大量400 bad request错误的解决方法

 更新时间:2015年01月26日 10:45:04   投稿:junjie  
这篇文章主要介绍了nginx服务器access日志中大量400 bad request错误的解决方法,本文结论是空主机头导致的大量400错误日志,关闭默认主机的日志记录就可以解决问题,需要的朋友可以参考下

在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;
    }

相关文章

  • 详解nginx反向代理配置及优化

    详解nginx反向代理配置及优化

    本篇文章主要介绍了详解nginx反向代理配置及优化,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-12-12
  • nginx通过https部署vue项目的完整步骤

    nginx通过https部署vue项目的完整步骤

    在实际开发中,我们会以https形式进行页面访问,下面这篇文章主要给大家介绍了关于nginx通过https部署vue项目的完整步骤,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
    2022-05-05
  • Mac环境Nginx配置和访问本地静态资源的实现

    Mac环境Nginx配置和访问本地静态资源的实现

    这篇文章主要介绍了Mac环境Nginx配置和访问本地静态资源的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-09-09
  • Nginx配置多端口多域名访问的实现

    Nginx配置多端口多域名访问的实现

    这篇文章主要介绍了Nginx配置多端口多域名访问的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-11-11
  • Nginx编译参数大全 configure参数中文详解

    Nginx编译参数大全 configure参数中文详解

    这篇文章主要介绍了Nginx编译参数大全,Nginx configure参数中文详解,需要的朋友可以参考下
    2014-04-04
  • Nginx缓存文件与动态文件自动均衡的配置脚本

    Nginx缓存文件与动态文件自动均衡的配置脚本

    Nginx (engine x) 是一个高性能的HTTP和反向代理服务,也是一个IMAP/POP3/SMTP服务。这篇文章主要介绍了Nignx缓存文件与动态文件自动均衡的配置,需要的朋友可以参考下
    2018-09-09
  • linux查找当前系统nginx路径的两种方法

    linux查找当前系统nginx路径的两种方法

    工作中有很多服务器, 它们上面装的 nginx 的路径也太不相当, 当我们拿到一个不熟悉的服务器时, 我们怎么知道, 当前运行的nginx的目录是哪一个呢,本文小编给大家介绍了两种linux查找当前系统nginx的路径的方法,需要的朋友可以参考下
    2023-11-11
  • 隐藏网站Nginx版本号信息的方法分享

    隐藏网站Nginx版本号信息的方法分享

    隐藏网站nginx服务的版本号信息,在安全的角度上来说,可以防止黑客快速利用nginx的版本漏洞进行攻击,所以本文为大家整理了隐藏网站Nginx版本号信息的方法,希望对大家有所帮助
    2023-08-08
  • Nginx配置中if判断的使用

    Nginx配置中if判断的使用

    在Nginx配置中,有时rewrite规则无法满足复杂逻辑判断需求,这时需要使用if语法,if可以根据文件是否存在、路径特定条件等进行判断,本文就来介绍一下if判断的使用
    2024-10-10
  • 服务器nginx配置ssl并http重定向到https方式

    服务器nginx配置ssl并http重定向到https方式

    这篇文章主要介绍了服务器nginx配置ssl并http重定向到https方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-12-12

最新评论