客户端收到413 Request Entity Too Large错误该如何解决?

今天在做图片上传的时候,生产环境莫名其妙出现一个问题

bash 复制代码
413 Request Entity Too Large

搜了一圈,发现Nginx默认的上传文件大小限制为1MB,超过该限制会导致客户端收到413 Request Entity Too Large错误!!! 以下是解决方案:


1. 修改Nginx配置文件 在Nginx配置文件中(通常为nginx.conf或站点配置文件),通过client_max_body_size指令调整限制:

nginx 复制代码
# 全局生效(http块)
http {
    client_max_body_size 20M;  # 设置为20MB,按需调整
    ...
}

# 或针对特定Server生效(server块)
server {
    client_max_body_size 20M;
    ...
}

# 或针对特定路由生效(location块)
location /upload {
    client_max_body_size 20M;
    ...
}

说明: • http块配置全局生效,server块作用于站点,location块作用于具体路径。

• 支持单位:k(KB)、m(MB)、g(GB)。


2. 重启Nginx服务 修改配置后需重载配置(无需完全重启):

bash 复制代码
nginx -s reload

3. 其他注意事项 • 后端服务限制:若后端(如PHP、Laravel)也有文件大小限制,需同步调整(如php.ini中的upload_max_filesize和post_max_size)。

• 缓冲区优化:若上传大文件,可调整client_body_buffer_size和client_header_buffer_size减少磁盘I/O。

• 安全风险:将client_max_body_size设为0可禁用限制,但可能引发资源耗尽攻击,需谨慎使用。


小结

通过修改Nginx的client_max_body_size参数并重载配置,即可解决文件上传大小超限问题。若需更细粒度控制,可结合server或location块配置。

相关推荐
枫叶轻语11 小时前
【Nginx 从入门到实战 07】root 与 alias:资源路径到底怎样对应?
nginx·全栈
acd1200914 小时前
Nginx 反向代理的缓冲区坑:后端响应大时接口偶发 502
java·运维·nginx
Thanks_ks15 小时前
常见 HTTP 状态码的坑:301/302、401/403、500/502 之间差的那一个词
计算机网络·nginx·http·面试·状态码·后端开发·浏览器缓存
Lsetea1 天前
Certbot webroot申请SSL证书总是404:Nginx挑战目录与路径映射检查
运维·nginx·https·ssl证书·certbot
莫晓燚2 天前
双机部署若依 (RuoYi‑Vue) 传统环境部署---实战
linux·运维·数据库·redis·mysql·nginx·ruoyi
山乐191312 天前
麒麟系统,安装Nginx并配置https证书
运维·nginx·https
一直在努力学习的菜鸟2 天前
阿里云SSL证书到期更换指南(Nginx + Typecho)
nginx
雾时之林2 天前
Nginx反向代理与proxy_cache缓存搭建CDN服务器
服务器·nginx·缓存
Linux_cy2 天前
nginx 502 排查手册:九种原因分类、定位命令与检查顺序
linux·运维·服务器·网络·数据库·nginx·ssh
开源必胜2 天前
Socket、异步非阻塞 I/O 与 NGINX、Netty 模型
网络·tcp/ip·nginx