nginx 400 bad request怎么解决

 我来答
朝着梦想出发丶
2018-07-05 · TA获得超过440个赞
知道小有建树答主
回答量:704
采纳率:90%
帮助的人:90.9万
展开全部
nginx 400 Bad request是request header过大所引起,request过大,通常是由于cookie中写入了较大的值所引起。
所幸在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
匿名用户
2016-10-01
展开全部
  解决方法如下:
  在nginx.conf中,将client_header_buffer_size和large_client_header_buffers都调大,可缓解此问题。
  其中主要配置是client_header_buffer_size这一项,默认是1k,所以header小于1k的话是不会出现问题的。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式