Nginx上传大文件为什么报413

最近处理一个 PHP 后台上传功能时遇到过这种情况:普通图片和小附件都能正常上传,但只要文件稍微大一点,页面就直接提示 413,PHP 接口甚至没有进入业务代码。刚开始一直在检查 upload_max_filesize 和 post_max_size,两个参数明明已经调得很大,问题却没有变化。

后来继续排查才发现,请求其实被 Nginx 提前拦截了。

Nginx 本身还有一个 client_max_body_size 参数,用来限制客户端请求体大小。如果这里设置得比 PHP 允许的上传大小更小,请求还没到 PHP-FPM,就已经被 Nginx 返回 413 Request Entity Too Large。这时候无论怎么改 PHP 配置都不会生效。

处理时先根据业务需要调整 Nginx 的上传限制,再检查 PHP 的 upload_max_filesize 和 post_max_size,保证几层配置之间不会互相冲突。修改后重新加载 Nginx,并通过 phpinfo() 或命令行确认 PHP 实际加载的配置文件,避免改错 php.ini。

另外还给上传接口增加了前端文件大小校验。用户选择文件时就能知道是否超出限制,不需要等上传半天以后再看到报错。

现在排查文件上传问题,我一般会按照"浏览器、Nginx、PHP、程序代码"这个顺序逐层确认。很多上传失败并不是 PHP 代码有问题,而是请求根本没有机会进入 PHP。

#PHP开发 #Nginx #文件上传 #服务器运维

相关推荐
WeiXin_DZbishe2 小时前
基于微信小程序的本地闲置物品交易平台-计算机毕设 附源码【课程设计】26825
vue.js·spring boot·python·微信小程序·架构·php·课程设计
唐青枫3 小时前
Yii2 Controller 详解:路由、Action、过滤器与 CRUD 实战
php
WeiXin_DZbishe3 小时前
基于Node.js的马拉松赛事管理系统的设计与实现-计算机毕设 附源码【课程设计】90211
java·javascript·vue.js·python·php·课程设计
郑州光合科技余经理6 小时前
出海外卖平台:支付对接为什么要和下单收款分开
android·java·开发语言·前端·后端·php·ai编程
谢亮_vipxieliang6 小时前
PHP 异常处理全解析:try-catch、自定义异常与全局异常处理器
开发语言·php
JaguarJack7 小时前
免费可商用 PHP 管理后台 CatchAdmin V5.4.1 发布,新增 MCP 支持
后端·php·laravel·服务端
BingoGo7 小时前
免费可商用 PHP 管理后台 CatchAdmin V5.4.1 发布,新增 MCP 支持
后端·php
谢亮_vipxieliang7 小时前
多智能体系统的“TCP/IP时刻”:MCP与A2A协议如何定义Agent时代
网络·tcp/ip·ai·php
cleble7 小时前
怎么用用 PowerShell 下载文件
开发语言·php
北京盛世宏博18 小时前
工业环境监测选型:Modbus TCP以太网温湿度传感器部署、调试、避坑全指南
开发语言·网络·php