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 #文件上传 #服务器运维

相关推荐
Escalating_xu4 小时前
【Linux 网络编程】DNS 与 ICMP:从域名解析到 ping、traceroute,把“网络通不通”问清楚
linux·网络·php
Lsetea6 小时前
Certbot webroot申请SSL证书总是404:Nginx挑战目录与路径映射检查
运维·nginx·https·ssl证书·certbot
niucloud-admin6 小时前
NIUCLOUD PHP SAAS上门家政使用文档--服务订单:订单列表
开发语言·php
一枕槐安4876 小时前
大模型限流、重试、超时处理:API 调用健壮性方案
linux·服务器·php·大模型api·指数退避·限流控制·超时预算
李纲明7 小时前
WordPress 白屏或提示「出现了严重错误」:先开 WP_DEBUG 抓致命错误,再二分插件与主题
运维·php·debug·wordpress·白屏·插件冲突·devdiy
莫晓燚8 小时前
双机部署若依 (RuoYi‑Vue) 传统环境部署---实战
linux·运维·数据库·redis·mysql·nginx·ruoyi
其实防守也摸鱼9 小时前
Chrome 扩展安全攻防实录:从攻击面到防御实践
开发语言·前端·网络·chrome·安全·web安全·php
山乐1913111 小时前
麒麟系统,安装Nginx并配置https证书
运维·nginx·https
niucloud-admin11 小时前
NIUCLOUD PHP SAAS上门家政使用文档--服务订单:评价列表
开发语言·php
一直在努力学习的菜鸟12 小时前
阿里云SSL证书到期更换指南(Nginx + Typecho)
nginx