nginx 414 Request-URI Too Large

症状

nginx 414 Request-URI Too Large

#客户端请求头缓冲区大小,如果请求头总长度大于小于128k,则使用此缓冲区,

#请求头总长度大于128k时使用large_client_header_buffers设置的缓存区
client_header_buffer_size 128k;

#large_client_header_buffers 指令参数4为个数,128k为大小,默认是8k。申请4个128k。
large_client_header_buffers 4 128k;

当http 的URI太长或者request header过大时会报414 Request URI too large或400 bad request错误。

可能原因

场景1.cookie中写入的值太大造成的,因为header中的其他参数的size一般比较固定,只有cookie可能被写入较大的数据

场景2.请求参数太长,比如发布一个文章正文,用urlencode后,使用get方式传到后台。

GET http://www.264.cn/ HTTP/1.1
Host: www.264.cn
Connection: keep-alive
Cache-Control: max-age=0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
User-Agent: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.31
Accept-Encoding: gzip,deflate,sdch
Accept-Language: zh-CN,zh;q=0.8
Accept-Charset: GBK,utf-8;q=0.7,*;q=0.3
Cookie: bdshare_firstime=1363517175366;
If-Modified-Since: Mon, 13 May 2013 13:40:02 GMT

当请求头过大时,超过large_client_header_buffer时,nginx可能返回"Request URI too large" (414)或者"Bad-request"(400)错误。

如上例HTTP请求头由多行构成,其中"GET http://www.264.cn/ HTTP/1.1"表示Request line

当Request line的长度大于large_client_header_buffer的一个buffer(128k)时,nginx会返回"Request URI too large" (414)错误,对应上面的场景2。

请求投中最长的一行也要小于large_client_header_buffer,当不是Request line的最长行大于一个buffer(128k)时,会返回"Bad-request"(400)错误,对应上面的场景1。

解决办法

这时可以调大上述两个值:

client_header_buffer_size 512k;
large_client_header_buffers 4 512k;
时间: 2024-12-16 21:14:32

nginx 414 Request-URI Too Large的相关文章

Nginx   413 Request Entity Too Large

在上传时nginx返回了413错误,查看log文件,显示的错误信息是:"413 Request Entity Too Large", 需要做以下设 置: 打开nginx主配置文件nginx.conf,找到http{}段,增加 client_max_body_size的相关设置, 这个值默认是1m,可以增加到3m以增加提高文件大小限制: client_max_body_size     3m;       client_body_buffer_size  128k;       prox

nginx优化:URI过长或request header过大导致400或414报错

当http 的URI太长或者request header过大时会报414 Request URI too large或400 bad request错误. 解决方法: 修改两个参数 参数一: #client_header_buffer_size:客户端请求头缓冲区大小,client_header_buffer_size 128k;#如果请求头总长度大于小于128k,则使用此缓冲区 参数二: #large_client_header_buffers:请求头总长度大于128k时使用large_cli

nginx、Apache、IIS中413 Request Entity Too Large问题解决方法

分享下nginx.Apache.IIS三种服务器解决413 Request Entity Too Large问题的方法. 一.nginx服务器 nginx出现这个问题的原因是请求实体太长了.一般出现种情况是Post请求时Body内容Post的数据太大了,如上传大文件过大.POST数据比较多. 处理方法在nginx.conf增加 client_max_body_size的相关设置, 这个值默认是1m,可以增加到8m以增加提高文件大小限制:当然可以设置的更大点.# 在http,server或者loc

Nginx出现413 Request Entity Too Large错误解决方法

Nginx出现的413 Request Entity Too Large错误,这个错误一般在上传文件的时候出现,打开nginx主配置文件nginx.conf,找到http{}段,添加 解决方法就是 打开nginx主配置文件nginx.conf,一般在/usr/local/nginx/conf/nginx.conf这个位置,找到http{}段,修改或者添加  代码如下 复制代码 client_max_body_size 2m; 然后重启nginx,  代码如下 复制代码 sudo /etc/ini

Nginx出现“413 Request Entity Too Large”错误解决方法

今天使用phpmyadmin的导入功能的时候,由于sql文件过大,服务器出现错误提示了,413 Request Entity Too Large,google了一下,发现是Nginx的错误提示.  解决方法:打开nginx主配置文件nginx.conf,找到http{}段,添加 client_max_body_size 100m; fedora下 vi /etc/nginx/nginx.conf  重启NGINX   sudo /etc/init.d/nginx restart 恢复正常

nginx 问题 413 Request Entity Too Large的解决方法

上传图片出现Nginx出现"413 Request Entity Too Large"错误解决方法 看了一下nginx.conf发现没有设置client_max_body_size,这个参数默认只是1M,也就是说发布的文章内容大小不能超过1M 解决方法:打开nginx主配置文件nginx.conf,找到http{}段,添加 client_max_body_size 20m;

使用nginx做反代时遇到413 Request Entity Too Large的解决方法

在使用nginx做反向代理的时候,被反代的系统在上传文件的时候遇到413 错误 :Request Entity Too Large 原因是nginx限制了上传文件的大小,在nginx中可以配置最大允许的文件大小: 打开nginx主配置文件nginx.conf,找到http{},添加client_max_body_size 50m; 这里设置成了最大50m,你可以根据自己系统的需求自己来进行设置 

Nginx 出现413 Request Entity Too Large得解决方法

Nginx 出现413 Request Entity Too Large得解决方法 默认情况下使用nginx反向代理上传超过2MB的文件,会报错413 Request Entity Too Large ,修改或增加配置client_max_body_size值即可: nginx默认上传文件的大小是1M 解决方法: 打开/usr/local/etc/nginx/nginx.conf,找到 http { -- } 在里面加入 client_max_body_size 4m; 如: http { --

nginx 400 request line is too large (4360 4094)

查看nginx下面两个参数 值是否满足 client_header_buffer_size 512k;large_client_header_buffers 4 512k; 满足依然出现 如果nginx是做反向代理设置gunicorn 参数--limit-request-line 8188 (默认是4094) nginx 400 request line is too large (4360 4094)