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

nginx返回的错误

  配置多个vhost,nginx在处理header时实际分配的buffer大小,是解析conf后,default_server中的最终值。

  若http中有配置,server中无配置,以http中配置为准;若http中无配置,server中有配置,以server中配置为准;若http中无配置,server中无配置,以默认配置为准。

  三者有区别

    设置到http{}内,控制全局nginx所有请求报文大小

    设置到server{}内,控制该server的所有请求报文大小

    设置到location{}内,控制满足该路由规则的请求报文大小
1、client_body_buffer_size

#缓冲区代理缓冲用户端请求的最大字节数
client_body_buffer_size 128k;

  该参数对nginx服务器接受客户端请求的头信息时所分配的最大缓冲区的大小做了限制,也就是nginx服务器一次接受一个客户端请求可就收的最大都信息大小。

  这个头不仅包含 request-line,还包括通用信息头、请求头域、响应头域的长度总和。这也相当程度的限制了url的长度。nginx服务器默认的限制是4K或者8K。

2、client_max_body_size 

  该参数对发自客户端的http请求的消息实体大小进行了限制,此参数默认值为1MB,如果超过该值,则会服务器会返回错误状态码 413(Request Entity Too Large)。

3、client_header_buffer_size

#Default,Context:http, server
client_header_buffer_size 1k;

      设置用于读取客户端请求头的缓冲区大小。对于大多数请求,1K字节的缓冲区就足够了。但是,如果请求包含长cookie或来自WAP客户端,则它可能无法容纳1K。如果请求行或请求头字段不适合此缓冲区,则会分配由large_client_header_buffers指令配置的更大的缓冲区。

3、large_client_header_buffers

#Default:	
large_client_header_buffers 4 8k;

      设置用于读取大型客户端请求头的缓冲区的最大数量和大小。请求行不能超过一个缓冲区的大小,否则向客户端返回414(Request-URI Too Large)错误。如果请求头字段HTTP头/Cookie过大也不能超过一个缓冲区的大小,否则向客户端返回400(Bad Request)错误。缓冲区仅按需分配。默认情况下,缓冲区大小等于8K字节。如果在请求处理结束后连接转换为保持活动状态,则释放这些缓冲区。   

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值