首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >【详解】Nginx413修改上传文件大小限制

【详解】Nginx413修改上传文件大小限制

原创
作者头像
大盘鸡拌面
发布于 2025-05-22 02:34:35
发布于 2025-05-22 02:34:35
3.5K05
代码可运行
举报
运行总次数:5
代码可运行

Nginx 413 修改上传文件大小限制

在使用 Nginx 作为 Web 服务器时,有时会遇到客户端尝试上传大文件时返回 ​​413 Request Entity Too Large​​ 的错误。这个错误表示客户端请求的实体大于服务器愿意或能够处理的大小。本文将介绍如何通过配置 Nginx 来解决这个问题。

1. 理解 ​​413 Request Entity Too Large​​ 错误

当 Nginx 接收到的请求体(通常是 POST 请求中的数据)超过其默认设置的最大值时,就会返回 ​​413 Request Entity Too Large​​ 错误。默认情况下,Nginx 对请求体的大小限制是 1MB。这个限制可以通过配置文件中的 ​​client_max_body_size​​ 指令来调整。

2. 修改 Nginx 配置

2.1 打开 Nginx 配置文件

首先,需要找到 Nginx 的主配置文件 ​​nginx.conf​​。通常,这个文件位于 ​​/etc/nginx/nginx.conf​​ 或 ​​/etc/nginx/conf.d/​​ 目录下。你可以使用文本编辑器打开它:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo nano /etc/nginx/nginx.conf
2.2 设置 ​​client_max_body_size​

在 Nginx 配置文件中,可以在 ​​http​​、​​server​​ 或 ​​location​​ 块中设置 ​​client_max_body_size​​。根据你的需求选择合适的位置进行设置。

  • 全局设置:如果你希望所有服务器块和位置都使用相同的文件大小限制,可以在 http 块中设置:
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
http {
    client_max_body_size 10M;  # 允许的最大文件大小为 10MB
}
  • 特定服务器块设置:如果你只想对某个特定的虚拟主机设置文件大小限制,可以在 server 块中设置:
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
server {
    listen 80;
    server_name example.com;

    client_max_body_size 20M;  # 允许的最大文件大小为 20MB

    location / {
        root /var/www/html;
        index index.html index.htm;
    }
}
  • 特定位置设置:如果你只想对某个特定的 URL 路径设置文件大小限制,可以在 location 块中设置:
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
server {
    listen 80;
    server_name example.com;

    location /upload {
        client_max_body_size 50M;  # 允许的最大文件大小为 50MB
        proxy_pass http://backend;
    }
}
2.3 保存并退出

完成配置后,保存文件并退出编辑器。

3. 测试 Nginx 配置

在重新加载 Nginx 之前,建议先测试配置文件是否有语法错误:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo nginx -t

如果测试结果显示没有问题,可以继续重新加载 Nginx 以应用新的配置:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo systemctl reload nginx

或者使用以下命令:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo service nginx reload

4. 验证更改

为了验证更改是否生效,可以尝试上传一个大于原有限制的文件。如果成功上传且没有出现 ​​413 Request Entity Too Large​​ 错误,则说明配置已经生效。

通过上述步骤,你可以轻松地调整 Nginx 的文件上传大小限制,从而避免 ​​413 Request Entity Too Large​​ 错误。根据实际需求,可以选择在全局、特定服务器或特定位置进行设置。当使用Nginx作为Web服务器时,有时会遇到客户端上传大文件时返回413 Request Entity Too Large错误。这是因为Nginx默认的客户端请求体大小限制较小(通常是1MB)。为了允许上传更大的文件,你需要调整Nginx配置中的​​client_max_body_size​​指令。

下面是一个具体的示例,展示如何在Nginx配置文件中设置允许上传的最大文件大小:

1. 编辑Nginx配置文件

通常,Nginx的主要配置文件位于​​/etc/nginx/nginx.conf​​,但更常见的是在站点特定的配置文件中进行修改,这些文件通常位于​​/etc/nginx/conf.d/​​目录下或​​/etc/nginx/sites-available/​​目录下。

示例:修改站点配置文件

假设你的站点配置文件是​​/etc/nginx/sites-available/mysite​​,你可以编辑这个文件来增加​​client_max_body_size​​指令。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
server {
    listen 80;
    server_name example.com;

    # 其他配置...

    location / {
        # 设置允许上传的最大文件大小为10M
        client_max_body_size 10M;

        # 其他location配置...
    }

    # 如果你有其他location块,也可以单独设置
    location /upload/ {
        # 设置允许上传的最大文件大小为50M
        client_max_body_size 50M;

        # 其他location配置...
    }
}
2. 重启Nginx服务

修改配置文件后,需要重启Nginx服务以使更改生效。

在Debian/Ubuntu系统上:
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo systemctl restart nginx
在CentOS/RHEL系统上:
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo systemctl restart nginx
3. 验证配置

重启Nginx后,可以通过尝试上传一个大于原限制大小的文件来验证配置是否成功。如果不再出现413错误,说明配置已经生效。

注意事项
  • ​client_max_body_size​​可以设置在http、server或location上下文中。
  • 设置过大的值可能会导致服务器资源占用过高,因此需要根据实际情况合理设置。
  • 如果使用了反向代理,可能还需要在后端服务器(如PHP-FPM)中调整相应的上传限制。

通过以上步骤,你可以轻松地调整Nginx的上传文件大小限制,以满足不同应用的需求。在使用Nginx时,如果遇到“413 Request Entity Too Large”错误,这通常意味着客户端尝试上传的文件超过了Nginx默认允许的最大文件大小。Nginx默认的最大请求体大小是1MB。要解决这个问题,你需要修改Nginx配置文件来增加允许的上传文件大小。

修改步骤
  1. 找到Nginx配置文件
  • Nginx的主要配置文件通常位于​​/etc/nginx/nginx.conf​​或​​/etc/nginx/conf.d/​​目录下的某个文件中。
  • 如果你使用的是虚拟主机(Virtual Hosts),配置文件可能位于​​/etc/nginx/sites-available/​​或​​/etc/nginx/conf.d/​​目录下。
  1. 编辑配置文件
  • 使用文本编辑器打开配置文件,例如使用​​nano​​或​​vim​​:
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo nano /etc/nginx/nginx.conf
  • 或者针对特定的虚拟主机配置文件:
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo nano /etc/nginx/sites-available/your-site
  1. 添加或修改client_max_body_size​指令
  • ​client_max_body_size​​指令用于设置客户端请求的最大允许大小。这个值可以设置为具体的字节数或使用K、M、G等单位。
  • 你可以将这个指令添加到不同的上下文中,具体取决于你的需求:
  • 全局设置:在​​http​​块中设置,影响所有服务器和位置。
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
http {
    client_max_body_size 10M;  # 允许的最大文件大小为10MB
    ...
}
  • 特定服务器设置:在​​server​​块中设置,仅影响该服务器块内的所有位置。
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
server {
    listen 80;
    server_name yourdomain.com;
    client_max_body_size 10M;  # 允许的最大文件大小为10MB
    ...
}
  • 特定位置设置:在​​location​​块中设置,仅影响该位置。
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
server {
    listen 80;
    server_name yourdomain.com;
    location /upload {
        client_max_body_size 10M;  # 允许的最大文件大小为10MB
        ...
    }
    ...
}
  1. 保存并退出编辑器
  • 如果你使用的是​​nano​​,按​​Ctrl + O​​保存,然后按​​Ctrl + X​​退出。
  • 如果你使用的是​​vim​​,按​​Esc​​键,然后输入​​:wq​​保存并退出。
  1. 测试配置文件
  • 在重新加载Nginx之前,建议先测试配置文件是否正确:
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo nginx -t
  • 如果测试通过,你会看到类似以下的输出:
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
  1. 重新加载Nginx
  • 如果配置文件测试通过,重新加载Nginx以应用更改:
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo systemctl reload nginx
  • 或者使用:
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo service nginx reload
验证更改
  • 你可以尝试上传一个大于1MB但小于你新设置的大小的文件,确认是否成功上传。
  • 如果仍然遇到问题,检查Nginx的错误日志(通常位于​​/var/log/nginx/error.log​​)以获取更多信息。

通过以上步骤,你应该能够成功地修改Nginx的上传文件大小限制,从而避免“413 Request Entity Too Large”错误。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
解决 413 Request Entity Too Large(请求实体太大)
413 Request Entity Too Large 错误通常是因为客户端发送的请求体(Request Body)超过了服务器能够处理的大小限制。这通常发生在上传大文件(如图片、视频、文档等)时。
用户3672714
2025/08/05
2.7K0
文件上传413 错误解决办法
可以选择在http{ }中设置:client_max_body_size 20m;
ITer.996
2019/08/28
3.6K0
文件上传413 错误解决办法
flask项目开发中,遇到http 413错误
在flask项目中,上传文件时后台报http 413 Request Entity Too Large 请求体太大错误!
用户1558882
2019/01/30
2.9K0
nginx出现413 Request Entity Too Large的错误
也许你会说,已经有那么多写这类的文章了,你再在这里写岂不是多余,我也看了类似的文章,我在这里写出我的经历就是因为我的经历跟别人不太一样,所以才在此板书,下面入主题:
johnhuster的分享
2022/03/29
2.2K0
nginx出现413 Request Entity Too Large的错误
Nginx 报错:413 Request Entity Too Large
做web开发时,对于上传附件的功能,如果nginx没有调整配置,上传大一点的文件就会发生下面这种错误:
用户4463667
2025/02/27
3110
Nginx出现“413 Request Entity Too Large”的解决方法
周末刚刚给公司的一台服务器更换了 Nginx ,编辑们在后台上传图片时,浏览器中总报如下错误:
魏杰
2022/12/23
8870
413 Request Entity Too Large Sorry for the inconvenience.解决方案-Powered by Tengine
413 Request Entity Too Large Sorry for the inconvenience.解决方案-Powered by Tengine tengine采用了tengine-优雅草吴银满|卓伊凡
卓伊凡
2025/05/11
4320
Nginx 错误 413 Request Entity Too Large 解决方案
Nginx 上传大文件时会报 413 错误,本文记录解决方案。 问题原因 Nginx 默认上传文件大小限制为 1M 如果想要调整上传文件大小限制需要调整配置 解决方案 修改文件 /etc/nginx/nginx.conf 在 http{} 里面添加下面配置: client_max_body_size 512M; 重启 nginx sudo systemctl restart nginx # 或 service nginx restart 参考资料 https://jingyan.ba
为为为什么
2022/08/06
1.9K0
如何使用nginx修改上传文件大小限制?
如何使用nginx修改上传文件大小限制?用户在自己搭建服务器时,用nginx做代理。上传超过1M大的客户端文件发现无法正常上传,并且出现nginx直接报错的问题,因为上传文件太大,于是修改了下ngin
会长君
2023/04/25
6.4K1
Nginx配置模块详解及多站点共用80端口案例
main(全局设置) http ( ) upstream(负载均衡服务器设置) server(主机设置) location(URL匹配特点位置的设置)
菲宇
2022/12/21
2.7K0
Nginx配置模块详解及多站点共用80端口案例
wsl 2 unbuntu 部署 asp.net core 使用 nginx 做反向代理,调试文件上传失败
继上一篇 asp.net core 3.1多种身份验证方案,cookie和jwt混合认证授权 的公司内部项目上线后发现文件上传功能有问题。
SpringSun
2020/08/20
1.6K0
wsl 2 unbuntu 部署 asp.net core 使用 nginx 做反向代理,调试文件上传失败
一文详解Nginx安全加固
在当今数字化的世界中,网络安全已成为每一个组织和个人不可忽视的重要议题。作为最流行的Web服务器之一,Nginx不仅因为其高性能而被广泛使用,还因为它能够提供强大的安全保障。然而,默认配置下的Nginx可能无法抵御所有潜在的安全威胁。为了确保您的网站和应用程序能够在互联网上稳健运行,对Nginx进行适当的安全加固显得尤为重要。
zhouzhou的奇妙编程
2025/02/05
1.8K0
nginx访问日志报错:[error] 4560#4560_ _117823 client intended to send too large body_ 7562419 bytes,错误码413
对接其他系统接口时,对方说请求我们接口报错,让对方发了相关请求报文,查看后台程序日志,发现并没有相关请求报文日志,也没有任何访问信息,猜测是在nginx代理时候就已经出错被拦截。
共饮一杯无
2022/11/28
8990
nginx,ingress-nginx日常维护及报错
readv() failed (104: Connection reset by peer) while reading upstream
iginkgo18
2021/10/10
13.3K0
开发工具Tools·Nginx 问题集
意思是请求的内容过大,浏览器不能正确显示。常见的情况是发送 POST 请求来上传大文件。
数媒派
2022/12/01
4270
Nginx - 缓慢的 HTTP 拒绝服务攻击
Nginx解决Http慢攻击(Slow HTTP Attack)_nginx 慢拒绝服务攻击-CSDN博客
飞询
2025/08/01
2400
第十一章·Nginx常见问题
-多年互联网运维工作经验,曾负责过大规模集群架构自动化运维管理工作。 -擅长Web集群架构与自动化运维,曾负责国内某大型金融公司运维工作。 -devops项目经理兼DBA。 -开发过一套自动化运维平台(功能如下): 1)整合了各个公有云API,自主创建云主机。 2)ELK自动化收集日志功能。 3)Saltstack自动化运维统一配置管理工具。 4)Git、Jenkins自动化代码上线及自动化测试平台。 5)堡垒机,连接Linux、Windows平台及日志审计。 6)SQL执行及审批流程。 7)慢查询日志分析web界面。
DriverZeng
2022/09/26
8280
第十一章·Nginx常见问题
Nginx服务器常见错误和解决办法
Nginx服务器错误一般有以下8个原因,每一种原因下方,分别给出了解决的方法,如下: 1、请求的header过大。nginx默认的header长度上限是4k,如果超过了这个值,nginx会直接返回400错误。 解决方法:配置nginx.conf相关设置。可以通过以下2个参数来调整header上限:client_header_buffer_size 16k;large_client_header_buffers 4 16k。 2、上传文件过程中出现错误。这时浏览器显示“413 Request Entity Too Large”。这是因为没有设置client_max_body_size,这个参数默认只是1M,也就是说发布的文章内容大小不能超过1M。 解决方法:增加如下两行到nginx.conf的http{}段, 增大nginx上传文件大小限制:设置允许发布内容为8M:client_max_body_size 8M;client_body_buffer_size 128k。 另外如果运行的是php,那么还要检查php.ini,这个大小client_max_body_size要和php.ini中的如下值的最大值一致或者稍大,这样就不会因为提交数据大小不一致出现的错误:post_max_size = 8M;upload_max_filesize = 6M。 修改完配置后,别忘记重新加载。 3、客户端在为等到服务器相应返回前就关闭了客户端描述符。一般出现在客户端设置超时后,服务器主动关闭。 解决方法:根据实际Nginx后端服务器的处理时间修改客户端超时时间。 4、脚本错误(php语法错误、lua语法错误)。 解决方法:查看nginx_err_log php_err_log。 5、访问量过大,系统资源限制,不能打开过多文件。 磁盘空间不足。(access log开启可能导致磁盘满溢,服务器主动关闭)。 解决方法:修改/etc/sysctl.conf文件,并使用下面的命令确认: #sysctl -p。要使 limits.conf 文件配置生效,必须要确保 pam_limits.so 文件被加入到启动文件中。 6、后端服务无法处理,业务中断。 解决方法:从后端日志获取错误原因,解决后端服务器问题。 7、后端服务器在超时时间内,未响应Nginx代理请求。 解决方法:根据后端服务器实际处理情况,调正后端请求超时时间。 8、网站页面缓存过大。 解决方法:配置nginx.conf相关设置:fastcgi_buffers 8 128k;send_timeout 60。
会长君
2023/04/25
2.7K0
常见 HTTP 状态码详解与Nginx 文件上传大小限制
在我们日常使用 Nginx 搭建网站或应用服务时,可能会遇到很多与文件上传和请求响应相关的问题。今天我们就来聊聊 如何限制文件上传的大小,并介绍一些常见的 HTTP 状态码 及其在 Nginx 中的处理方式。
井九
2024/10/12
7570
一文解决 nginx + ingress + gunicorn 上传大文件报错的解决思路
在基于 Kubernetes 部署,使用 Gunicorn 运行的 Python Web 应用中,上传大文件时出现了一系列的错误,现在将解决问题的思路记录如下。
DevOps时代
2021/03/15
3K0
推荐阅读
相关推荐
解决 413 Request Entity Too Large(请求实体太大)
更多 >
领券
一站式MCP教程库,解锁AI应用新玩法
涵盖代码开发、场景应用、自动测试全流程,助你从零构建专属AI助手
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验