nginx 400 Bad request 错误的原因和解决办法

所幸在nginx中是有办法解决这个问题:

在nginx.conf中,将client_header_buffer_size和large_client_header_buffers都调大,可缓解此问题。

client_header_buffer_size:默认是1k,所以header小于1k的话是不会出现问题的。
large_client_header_buffers:该命令用于设置客户端请求的Header头缓冲区的大小,默认值为4KB。客户端请求行不能超过large_client_header_buffers指令设置的值,客户端请求的Header头信息不能大于large_client_header_buffers指令设置的缓冲区大小,否则会报“Request URL too large”(414)或者“Bad-request”(400)错误,如果客户端Cookie信息较大,则须增加缓冲区大小。

现在配置是:

 代码如下 复制代码

client_header_buffer_size 128k;

large_client_header_buffers 4 128k;

去掉access日志中的400方法

0.7.12以前版本的nginx收到一个空请求,nginx不会去与任何虚拟主机匹配,直接返回400错误,

之后的新版本nginx可以用server_name _;匹配空请求头。

所以如果用的旧版本先升级到0.7.12以后的版本

升级之后添加如下默认虚拟主机server。

增加默认的server到配置文件,以下配置的解释看这里禁止未绑定域名访问

 代码如下 复制代码

server {
  listen 80 default_server;
  server_name _;
  return 404;
  access_log off;
}

建议把上面这个server保存为default.conf,然后include到主配置文件nginx.conf

时间: 2024-08-03 14:57:53

nginx 400 Bad request 错误的原因和解决办法的相关文章

dubbo filter 使用-调用Dubbo服务报以下错误,原因和解决办法

问题描述 调用Dubbo服务报以下错误,原因和解决办法 用mvn 创建了一个子项目jar dubbo filter,在生产者中无法调用,报 No such extension xxx for filter/com.alibaba.dubbo.rpc.Filter

WIN XP出现“延缓写入失败”错误的原因和解决办法

问:电脑用的是双硬盘,最近系统任务栏弹出一个错误提示信息,提示延缓写入失败,然后在我的电脑中,D盘和G盘消失了.重启后,所有分区都可见,但对D盘或G盘中的数据进行操作时,系统就会假死.蓝屏重启.这是为什么? 答:"延缓写入"是操作系统的一项功能,在对硬盘有写入操作时,如果当前硬盘正忙,可以将待写的数据存到缓冲区,等到硬盘空闲了再写入,因此这 是一项可提高系统性能的措施.出现"延缓写入失败"错误的原因有很多种,可能与硬件.软件.系统以及BIOS都有关系,建议你先重新插

error while loading shared libraries: xxx.so.x" 错误的原因和解决办法

今天在执行一个protobuf程序时,提示error while loading shared libraries: libprotobuf.so.8: cannot open shared object file: No such file or directory错误.google了一下,是由于找不到lib这个文件. 解决办法: 一般我们在Linux下执行某些外部程序的时候可能会提示找不到共享库的错误, 比如:   tmux: error while loading shared libra

FileTracker:error FTK1011编译错误的原因和解决办法

今天在使用VS2010运行周五编写的一个小程序的时候,出现FileTracker:error FTK1011编译错误.周五一个正常的程序,今天怎么会出现问题?网上找了一下解决方法,都挺麻烦的.后来仔细想了一下,今天我运行程序之前只做了一件事,就是把项目的文件夹名给改了一下,所以我把文件夹名给改回去,再运行一下,安全正常了. 总结一下:     出错原因:项目所在的文件夹名被修改引起的  解决办法:恢复项目所在的文件名

“不能执行已释放的Script代码”错误的原因及解决办法_javascript技巧

很多web开发者或许都遇到过这样的问题,程序莫名奇怪出现"不能执行已释放Script的代码",错误行1,列1.对于这种消息描述不着边,行列描述更是让人迷茫的js错误,相信是所有调试js程序的朋友们最郁闷也最憎恨的事情!遇到这种问题,最简单的办法直接把错误贴到baidu或google那个小输入框中让他们先给点指点,再去解决,可这次却没有这么容易,在baidu搜索似乎很多人都遇到过这种问题,但是都是些什么qq空间错误,狂晕,或者就是只有问没有答的,闷!    这种错误从何调起?后面没办法,

出现“不能执行已释放的Script代码”错误的原因及解决办法_javascript技巧

很多web开发者或许都遇到过这样的问题,程序莫名奇怪出现"不能执行已释放Script的代码",错误行1,列1.对于这种消息描述不着边,行列描述更是乱写的js错误,相信是所有调试js程序的朋友们最郁闷也最憎恨的事情!遇到这种问题,最简单的办法直接把错误贴到baidu或google那个小输入框中让他们先给点指点,再去解决,可这次却没有这么容易,在baidu搜索似乎很多人都遇到过这种问题,但是都是些什么qq空间错误,狂晕,或者就是只有问没有答的,闷!    这种错误从何调起?后面没办法,又是

宽带连接错误769原因与解决办法

通常,如果存在下列情况之一,您将收到错误769的信息: 1. 网络电缆已断开. 2. 调制解调器已禁用. 3. 调制解调器驱动程序已损坏. 4. 计算机上正在运行间谍软件,它妨碍了连接. 5. Winsock 需要得到修复. 6. 第三方防火墙软件阻止了连接. 解决方案: 要查找问题的原因,请按照下列步骤操作. 步骤 1:确保网络电缆已连接 确保网络电缆分别连接到计算机和调制解调器.如果您的计算机连接到集线器或路由器,请确保将集线器或路由器连接到调制解调器的电缆已连接. 步骤 2:确保网络适配器

error while loading shared libraries: xxx.so.x"错误的原因和解决办法

一般我们在Linux下执行某些外部程序的时候可能会提示找不到共享库的错误, 比如:   tmux: error while loading shared libraries: libevent-1.4.so.2: cannot open shared object file: No such file or directory 原因一般有两个, 一个是操作系统里确实没有包含该共享库(lib*.so.*文件)或者共享库版本不对, 遇到这种情况那就去网上下载并安装上即可.  另外一个原因就是已经安装

Python编写的com组件发生R6034错误的原因与解决办法_python

解决该问题的方法可以为调用本程序的exe文件建立一个合适的manifest文件,指定正确的msvcr90.dll版本即可,具体可参照http://www.jb51.net/article/35219.htm ps:可以使用mt.exe进行导出或合并manifest资源到exe或者dll文件. 查看manifest的方法:mt -inputresource:pythoncom27.dll;#2 -out:sss.txt 合并manifest到dll的方法: mt.exe –manifest MyA