HTTP 413错误源于Nginx默认client_max_body_size为1MB,需依次调整Nginx、PHP(如适用)、后端框架及代理层的上传限制,并重载服务验证生效。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

如果您在安装WorkBuddy后尝试上传附件但失败,并收到HTTP 413 Request Entity Too Large错误,则很可能是Nginx对请求体大小的默认限制触发了拦截。Nginx默认client_max_body_size为1MB,任何超过该尺寸的文件上传请求都会被直接拒绝,不会转发至WorkBuddy后端服务。以下是解决此问题的步骤:
一、修改Nginx client_max_body_size配置
该指令控制Nginx允许接收的客户端请求体最大字节数,必须在http、server或location作用域中显式设置,且生效值取最内层匹配块的配置。单位支持k、m、g(不区分大小写),不可使用MB、mb等写法。
1、使用sudo权限打开主配置文件:sudo nano /etc/nginx/nginx.conf
2、在http块内添加全局设置(适用于所有站点):client_max_body_size 100m;
3、或在WorkBuddy对应的server块中添加专属设置(推荐):client_max_body_size 200m;
4、若仅需放宽上传接口路径(如/api/upload),则在对应location块中设置:client_max_body_size 500m;
5、保存文件并退出编辑器。
二、检查并重载Nginx配置
语法错误会导致重载失败,必须先验证配置有效性,再使新设置生效。重载操作不会中断现有连接,比重启更安全。
1、执行配置语法检查:sudo nginx -t
2、若输出显示“syntax is ok”和“test is successful”,则执行重载:sudo systemctl reload nginx
3、确认当前生效值:sudo nginx -T | grep client_max_body_size
三、同步调整PHP上传限制(如WorkBuddy基于PHP)
即使Nginx放行大文件,PHP运行时仍会依据自身配置拒绝超限上传。upload_max_filesize和post_max_size必须同时调大,且memory_limit需大于二者之和。
1、定位php.ini文件(常见路径:/etc/php/*/fpm/php.ini 或 /usr/local/etc/php/php.ini)
2、修改以下三项参数(示例设为200MB):upload_max_filesize = 200M
3、post_max_size = 200M
4、memory_limit = 256M
5、重启PHP服务:sudo systemctl restart php*-fpm
四、验证后端服务自身限制(如Node.js/Java/Python)
WorkBuddy若部署于Node.js(Express)、Spring Boot或Flask等框架,其内置解析中间件也存在独立body size限制,Nginx配置放宽后仍需同步解除。
1、若为Express应用,在入口文件中添加:app.use(express.json({ limit: '200mb' })); app.use(express.urlencoded({ limit: '200mb', extended: true }));
2、若为Spring Boot,在application.yml中配置:spring.servlet.multipart.max-file-size: 200MB
3、若为Flask应用,设置:app.config['MAX_CONTENT_LENGTH'] = 200 * 1024 * 1024
4、重启对应后端服务进程。
五、检查是否启用代理且后端存在重复限制
当Nginx以proxy_pass方式转发请求时,后端服务(如Tomcat、Gunicorn)可能自带maxPostSize或limit_request_body等机制,导致二次拦截。需逐层排查,避免某一层未调整而造成失效。
1、检查Nginx配置中是否存在多个client_max_body_size定义,确认实际生效的是最内层值。
2、若后端为Tomcat,在server.xml的Connector标签中确认:maxPostSize="-1"(Tomcat 7+)或 maxPostSize="0"(Tomcat 6及以下)
3、若后端为Python Gunicorn,检查启动参数是否含--limit-request-body=0
4、临时在Nginx location块中添加日志记录,确认请求是否抵达后端:access_log /var/log/nginx/workbuddy_upload.log main;










