Nginx报错 HTTP 413 Request Entity Too Large(Payload Too Large)解决方案

这篇具有很好参考价值的文章主要介绍了Nginx报错 HTTP 413 Request Entity Too Large(Payload Too Large)解决方案。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

原因

上传文件时,请求参数过大,导致超出服务端限制。

客户端发送的实体主体部分比服务器能够或者希望处理的要大。 

解决

Nginx默认最大能够上传1MB文件,打开nginx.conf在http{}中,找到server{}设置:
client_max_body_size 30m;(配置客户端请求实体最大值)
client_body_buffer_size 128k;(配置请求体缓存区大小)

client_max_body_size
client_max_body_size 默认 1M,表示 客户端请求服务器最大允许大小,在“Content-Length”请求头中指定。如果请求的正文数据大于client_max_body_size,HTTP协议会报错 413 Request Entity Too Large。如果需要上传大文件,一定要修改该值。

client_body_buffer_size
Nginx分配给请求数据的Buffer大小,如果请求的数据小于client_body_buffer_size直接将数据先在内存中存储。如果请求的值大于client_body_buffer_size小于client_max_body_size,就会将数据先存储到临时文件中,在哪个临时文件中呢?
client_body_temp 指定的路径中,默认该路径值是/tmp/.
所以配置的client_body_temp地址,一定让执行的Nginx的用户组有读写权限。否则,当传输的数据大于client_body_buffer_size,写进临时文件失败会报错。


如果追求效率,就设置 client_max_body_size,client_body_buffer_size相同的值,这样就不会存储临时文件,直接存储在内存了。

当请求为GET请求时,可以在nginx.conf的http{}中,找到server{}设置:

client_header_buffer_size 2k;

large_client_header_buffers 4 16k;

具体大小根据实际情况而定,这里仅做示例

client_header_buffer_size

client_header_buffer_size 默认值:1k,这个指令表示客户端请求的http头部缓冲区大小。绝大多数情况,下一个头部请求的大小不会大于1k。不过如果有来自于wap客户端的较大的cookie它可能会大于1k,Nginx将分配给它一个更大的缓冲区,这个值可以在large_client_header_buffers里面设置。

large_client_header_buffers

默认值:large_client_header_buffers 4 4k,指令表示客户端请求的一些比较大的头文件到缓冲区的最大值。如果一个请求的URI大小超过这个值,服务器将返回一个"Request URI too large" (414),同样如果一个请求的头部字段大于这个值,服务器将返回"Bad request"(400)。

缓冲区根据需求的不同是分开的。 默认一个缓冲区大小为操作系统中分页文件大小,通常是4k或8k,如果一个连接请求将状态转换为 keep-alive,这个缓冲区将被释放。

 改完配置后,执行如下命令,热更新nginx配置:

nginx -s reload

总结  文件无法上传大概就有以下四个方面的原因:

服务器对上传文件带下做了限制(Nginx,Apache,IIS等服务器,文中仅对Nginx配置做了说明)
网关对上传文件大小做了限制,此时添加配置即可。
SpringBoot/Spring对上传文件大小做了限制,添加配置即可。
文件确实过大,前后端链接超时,自动断开链接,可自己设置断点续传。文章来源地址https://www.toymoban.com/news/detail-467541.html

到了这里,关于Nginx报错 HTTP 413 Request Entity Too Large(Payload Too Large)解决方案的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 浏览器Post请求出现413 Request Entity Too Large (Nginx)

    环境 操作系统 window server 2016 前端项目 Vue2 Nginx-1.25.3 一、错误信息 前端是vue项目,打包后部署在Nginx上,前端post请求出现Request Entity  Too Large错误信息。 ​这种问题一般是请求实体太大(包含参数,文件等)。客户端发送的实体主体部分比服务器能够或者限制处理的要大。

    2024年04月11日
    浏览(34)
  • Rancher上的应用服务报错:413 Request Entity Too Large

    UI-rancher的ingress-UI前端(在nginx里面)-zuul-server 也就是说没经过一次http servlet 都要设置一下大小  1.rancher的ingress 当出现Request Entity Too Large时,是由于传输流超过1M。 1、需要在rancher的ingress中设置参数解决。 配置注释:nginx.ingress.kubernetes.io/proxy-body-size     2. 前端在nginx里面 3.前

    2024年02月10日
    浏览(36)
  • 413 Request Entity Too Large

    字面意思很简单,就是文件太大了 先说解决方法!!! 如果是使用NGINX做代理,NGINX默认最大上传是1M如果超过就无法上传。 可以在配置写入如下: 在最后加上 client_max_body_size 100m; ,记得最后带上分号结束。 本来在本地调试页面时候,因为自己服务器本身带宽就很小,上传

    2024年02月10日
    浏览(37)
  • 413 Request Entity Too Large问题解决方法

    最近我们有个小程序需求是现场拍照提取照片中的有效信息,上传图片只能通过现场拍照,由于目前手机像素普遍较高,导致上传接口出现413 Request Entity Too Large,上传文件过大引起nginx代理报错。 针对这个问题,解决方案是: 项目配置文件修改,比如springboot项目中的applic

    2024年02月16日
    浏览(30)
  • 【异常】Failed to load resource: the server responded with a status of 413 (Request Entity Too Large)

    经过查询,是因为应用服务器使用了Nginx做代理,而在Nginx这一层限制了上传文件的大小,因此需要修改Nginx配置 在location 下面增加 client_max_body_size 100M; 配置项,重启Nginx文件上传成功.

    2024年02月15日
    浏览(37)
  • 访问elasticsearch集群提示ERROR 新增es数据失败,后台日志返回413 Request Entity Too Larg

    在运维paas云平台时有研发反馈客户端访问elasticsearch服务偶发性的出现报错,提示报错如下: 报错日志内容核心点如下: 根据日志报错内容及研发反馈的信息得到如下有用信息: 1、连接elasticsearch服务并请求处理业务是偶发性的提示报错,也就是说明elasticsearch服务是正常的

    2024年04月17日
    浏览(41)
  • ES报错:[parent] Data too large, data for [<http_request>] would be larger than limit of XXXX

    当es这个错误的时候 : [parent] Data too large, data for [http_request] would be larger than limit of [23941899878/22.2gb], with { bytes_wanted=23941987633 bytes_limit=23941899878 } 通常原因是 在于fielddata的内存被占用完了,其他索引无法分配更多的内存。 另外,查询语句写的不好,单个请求聚合查询的数据太

    2024年02月09日
    浏览(38)
  • 查询ES报错429 circuit_breaking_exception,“reason“:“[parent] Data too large, data for \[<http_request\>\]

    查询ES报错:429 Too Many Requests;circuit_breaking_exception,”reason”:”[parent] Data too large, data for [http_request]“ 问题 :ES查询报错:429 Too Many Requests;circuit_breaking_exception,“reason”:“[parent] Data too large, data for [http_request]” 原因 :ES查询缓存占用内存过大,超过阈值(默认70%),查

    2024年02月12日
    浏览(38)
  • HTTP:400 Request Header Or Cookie Too Large

    有时候在访问页面时会遇到400 Bad Request(Request Header Or Cookie Too Large)错误,如下图所示: 先了解一下关于400 Bad Request状态码的解释: 由于明显的客户端错误(例如,格式错误的请求语法,太大的大小,无效的请求消息或欺骗性路由请求),服务器不能或不会处理该请求。

    2024年02月04日
    浏览(36)
  • php使用get和post传递数据出现414 Request-URI Too Large的解决方案

    “Request-URI Too Large”(请求URI过长)是一个HTTP错误状态码,表示所发送的HTTP请求中的URI(统一资源标识符)长度超过了服务器能够处理的限制。 这个错误通常发生在发送GET请求时,URI的长度超过了服务器或代理服务器的限制。HTTP协议对于URL的长度没有明确的规定,而是由服

    2024年02月14日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包