大文件上传出现Error 413错误,配置client_max_body_size后仍异常
大文件上传Error 413排查方案(已配置client_max_body_size=15G)
问题描述
上传6.8GB文件时触发Error 413错误,已将Nginx的
client_max_body_size设为15G,0-500MB文件上传正常,首次测试大文件出现该问题。
更新:使用Dropzone.js分片上传,通过库合并文件,怀疑分片拆分未实际完成,将进一步排查。
需检查的配置及解决方案
后端应用上传限制(以PHP为例)
从截图看使用PHP环境,需确认以下php.ini配置:upload_max_filesize:需大于单分片大小(分片上传场景)或目标文件总大小post_max_size:必须大于upload_max_filesize,因为POST请求包含文件内容及表单数据max_execution_time/max_input_time:大文件上传耗时更长,需调整为足够大的值,避免请求超时
修改后重启PHP-FPM或Web服务确保生效。
Nginx配置生效范围验证
- 确保
client_max_body_size不仅在http块设置,server或location块也需配置(子块配置会覆盖父块) - 修改后执行
nginx -s reload重启服务,可通过curl -I -X POST -F "file=@testfile" 你的上传域名/接口测试,确认配置生效
- 确保
分片上传逻辑验证
针对Dropzone.js分片上传:- 检查配置是否开启分片:确认
chunking: true、chunkSize(如50MB)等参数正确设置 - 打开浏览器开发者工具,查看网络请求是否拆分为多个分片请求,而非一次性发送完整大文件
- 验证后端分片接收接口是否正常处理每个分片,返回200状态码,避免分片处理失败导致上传中断
- 检查配置是否开启分片:确认
中间代理/CDN限制检查
如果服务器前端有CDN、反向代理或负载均衡设备,这些服务可能自带请求体大小限制,需调整其允许的最大请求体不小于Nginx设置的值。
相关截图
- 浏览器错误:

- PHP ini设置:

- 服务器设置:

内容的提问来源于stack exchange,提问作者Robert Owen
相关产品推荐
相关产品推荐

