客户端收到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_filesizepost_max_size)。

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

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


小结

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

相关推荐
xing-xing15 分钟前
Docker容器中Nginx站点根目录网页配置访问
nginx·docker
PC2005-cloud3 小时前
Nginx 防盗链配置实战:用 referer 模块保护网站静态资源
nginx
PHP实战开发录5 小时前
Nginx上传大文件为什么报413
nginx·php·开发
Lsetea1 天前
Nginx报No required SSL certificate was sent:mTLS客户端证书排查
运维·nginx·https·ssl·openssl
szephyr2 天前
HTTPS 证书申请与自动续期:acme.sh + Let‘s Encrypt 完整记录
nginx·https·acme.sh·证书续期
Lsetea2 天前
部署证书后提示“证书名称与输入不匹配”:Safari 报错的三层排查
nginx·https·safari·ssl证书·openssl
打工仔折腾 AI3 天前
FastAPI 从本机到生产服务器:Nginx+Gunicorn+Uvicorn 完整部署实录
人工智能·后端·python·nginx·fastapi·gunicorn
Linux运维技术栈3 天前
如何避免绕过CDN的攻击?基于 CDN 回源请求头鉴权的防御实操与安全性剖析
nginx·安全·cdn
Lsetea3 天前
OpenSSL快速生成域名证书:含SAN的自签命令、验证与排错
nginx·https·ssl证书·openssl·自签证书
小小的木头人4 天前
CentOS 7 下 Nginx 访问自定义目录报 403 的完整排查:从端口权限到 SELinux
nginx·centos