异常现象
服务调用方反馈说一个文件上传接口偶尔报错:413 Request Entity Too Large。经过检查代码,发现代码的文件大小限制是10M,并且在测试环境验证上传的文件9.9M都可以上传成功。
异常分析
询问调用方,发现生产环境调用方上传的文件大部分小于1M,部分文件会大于1M并小于3M;经对比生产环境和测试环境差异,发现生产环境比测试环境多了一个nginx代理。查询发现nginx默认的上传文件大小上限就是1M,并且生产环境运维没有手动配置上限,其实用的还是nginx的默认值。
解决办法
修改nginx的上传文件大小限制到10M:
打开nginx.conf:
在 http{} 段中加入 client_max_body_size 10m
; 10m为允许最大上传的大小。
保存文件后重启 nginx service nginx restart,问题解决。