【Debug】关于 nginx 上传文件时出现 413 及 500 错误码解决方法

news2025/7/14 3:18:26

  先简单介绍一下 Nginx…
  Nginx 作为一个高性能的 HTTP 和 反向代理 web 服务器具有占用内存少, 并发能力强等特点,可以说 Nginx 专为性能和效率而生, 如 tomcat 的并发量大约在 100 多, 而 Nginx 的并发量可以达到 5 万之多;
Nginx 的主要作用还是反向代理, 实现负载均衡, 何为反向代理, 所谓反向代理其实就是隐藏了真实服务器的 IP 地址, 从而暴露了代理服务器的地址, 客户端只需要将请求发送到反向代理服务器, 由反向代理服务器去选择目标服务器获取数据后, 再返回给客户端, 🌰: 我想在本地使用 www.123.com 这个域名去访问 www.baidu.com, 那么这个时候就可以使用 Nginx 来实现;
何为负载均衡? 负载均衡就是我们将项目部署到多个服务器上, 然后通过使用统一的域名去访问, 通过 Nginx 对请求进行分发, 从而减轻服务器的压力, 也可以这样说, Nginx 服务器起到了分发的作用, 但是真正的实现可以放在其他的服务器上, Nginx 作为隔离层, 也对我们项目起到了安全壁障.

最近在项目中实现文件上传功能时, 先是遇到了413 错误码, 报错如下:
在这里插入图片描述
于是我就认为是不是上传的文件过大导致的? 于是我试着上传一个比较小的文件, 这时候倒是不报错 413 了, 反而又出现了 500 的错误码!!! 如下:
在这里插入图片描述
上网看了很多这样的问题, 但是好像很少有对症下药的办法, 但是通过资料搜集可以确认是 nginx 配置文件里面的问题…关于配置文件在哪找, 可以点击此处🔗.
于是又从网上搜集了一下关于 Nginx 限制文件大小的字段, 主要如下两个:

  • client_max_body_size: 如果 nginx.conf 不做设置的话, 默认大小就是 1M, 表示客户端请求服务器的最大允许范围, 前面报 413 错误码的原因可能是文件大小超出了 1M, 于是 nginx.conf 文件中添加这个字段, 这是我设置的是 8M, 具体自己的视情况而定, 如下:
    在这里插入图片描述

此时再次上传刚才比较大的文件, 已经不再报错 413, 但是 500 的错误码还是存在的, 这时候就有第二个字段的作用;

  • client_body_buffer_size: 指的是 Nginx 分配给请求数据的缓冲区大小, 如果请求的文件大小 < client_body_buffer_size 则直接将数据存储到内存中, 如果文件大小 > client_body_buffer_size 且 < client_max_body_size, 则存储到临时文件中; 加上此字段, 则不再报 500 这个错误, 可以正常上传文件, 这里我设置的是 3M, 具体自己设置.
    在这里插入图片描述
    修改完后, 记得重启 nginx: sudo nginx -s reload.
    在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/8647.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

什么是扩散模型(Diffusion Model)?

扩散模型是什么&#xff1f;如何工作以及他如何解决实际的问题 在计算机视觉中&#xff0c;生成模型是一类能够生成合成图像的模型&#xff08;文本生成图像【DALL2、Stable Diffusion】、图像生成图像【Diffusion-GAN】&#xff09;。例如&#xff0c;一个被训练来生成人脸的…

2023年天津市大学软件学院高职升本科联合招生专业考试大纲

天津市大学软件学院 2023年“高职升本科”联合招生专业考试大纲一、考试性质 天津市大学软件学院“高职升本科”联合招生专业考试是由合格的高职高专毕业生参加的选拔性考试。高等院校根据考生的成绩&#xff0c;按照已确定的招生计划&#xff0c;德、智、体全面衡量&#xff0…

MATLAB if...else...end 语句

在MATLAB的 if...else...end 语句中&#xff0c;if 语句后面可以跟一个可选择的 else 语句&#xff0c;当执行的表达式为假的时候&#xff0c;执行 else 语句。 if...else...end 语句语法&#xff1a; MATLAB 中一个 if ... else 语句的语法示例&#xff1a; if <expressio…

【python】一篇玩转正则表达式

目录 前言 正则表达式 行定位符 1.^ 2.$ 元字符 常见的元字符 限定符 常用的限定符 字符类 排除字符 选择字符 转义字符 &#xff08;&#xff09; python使用正则表达式 匹配字符串 match() search() findall() sub() 替换敏感字符 split() 前言 正则表…

柯桥托业TOEIC考试和PETS哪个含金量高?

说到对职场有益的证书&#xff0c;无外乎托业和BEC证书。但还有一种面向社会人士的考试&#xff0c;也有很多小伙伴很感兴趣。那就是PETS考试。 很多小伙伴也很好奇托业和PETS的区别&#xff0c;今天来给大家科普下喽。 TOEIC-托业考试 托业考试由美国教育考试服务中心(ETS)开…

LaTeX使用(公式,表格,图片,中文字符)

是一种基于ΤΕΧ的排版系统&#xff0c;由美国计算机学家莱斯利兰伯特&#xff08;Leslie Lamport&#xff09;在20世纪80年代初期开发&#xff0c;利用这种格式&#xff0c;即使使用者没有排版和程序设计的知识也可以充分发挥由TeX所提供的强大功能&#xff0c;能在几天、甚至…

HTML小游戏8 —— 小霸王游戏机网页版(附完整源码)

&#x1f482; 网站推荐:【神级源码资源网】【摸鱼小游戏】&#x1f91f; 风趣幽默的前端学习课程&#xff1a;&#x1f449;28个案例趣学前端&#x1f485; 想寻找共同学习交流、摸鱼划水的小伙伴&#xff0c;请点击【摸鱼学习交流群】&#x1f4ac; 免费且实用的计算机相关知…

RabbitMQ-04 Hello,World

首先我们还是先看一下Rabbitmq的工作原理图 从图上我们可以看到&#xff0c;无论是生产者还是消费者我们都需要进行connection并且获取相应的channel&#xff0c;所以为了方便&#xff0c;建议把这部分操作抽取成一个工具类RabbitMqUtils。 工具类RabbitMqUtils public class…

【C++笔试强训】第二十五天

&#x1f387;C笔试强训 博客主页&#xff1a;一起去看日落吗分享博主的C刷题日常&#xff0c;大家一起学习博主的能力有限&#xff0c;出现错误希望大家不吝赐教分享给大家一句我很喜欢的话&#xff1a;夜色难免微凉&#xff0c;前方必有曙光 &#x1f31e;。 &#x1f4a6;&a…

S7-1200通过MODBUS转PROFINET网关控制英威腾GD200A变频器的具体方法示例

S7-1200通过MODBUS转PROFINET网关控制英威腾GD200A变频器的具体方法示例 需要的设备: 西门子S7-1200PLC一台 MODBUS转PROFINET网关一台 英威腾GD200A变频器一台 具体配置方法: 1、 如下图所示,打开博途软件,新建项目并添加网关的gsd文件; 2、 如下图所示,建立profinet连…

Gradle介绍1-入门和IDEA整合(Gradle Wrapper)

1. Gradle 入门 1.1、Gradle 简介 Gradle 是一款Google 推出的基于 JVM、 通用灵活的项目构建工具&#xff0c; 支持 Maven&#xff0c;JCenter 多种第三方仓库;支持传递性依赖管理、废弃了繁杂的xml 文件&#xff0c;转而使用简洁的、支持多种语言(例如&#xff1a;java、gr…

前端—微信小程序开发

随着微信的普及和微小程序的广泛应用&#xff0c;微信小程序开发越来越多受到人们的关注&#xff0c;正在成为新工科和人工智能背景下当代大学生的必备技能。 适应对象 该课程适合电子信息类专业学生进行学习。 微信小程序开发课程共六章&#xff0c;通过对微信小程序开发的…

Java继承

一、知识点 继承是Java面向对象编程的一块基石&#xff0c;因为它允许创建分等级层次的类。继承可以理解为一个对象从另一个对象获取属性的过程。 如果类A是类B的父类&#xff0c;而类B是类C的父类&#xff0c;我们也称C是A的子类&#xff0c;类C是从类A继承而来的。在Java中&a…

理解case when then else end 的使用,基础概念,建表语句,用例讲解

文章目录一、基础概念二、建表语句三、用例讲解参考文档一、基础概念 case &#xff1a;表示需要处理的字段when &#xff1a;表示条件then &#xff1a;表示当when执行为true时&#xff0c;再执行的语句else &#xff1a;表示当所有的when执行为false时&#xff0c;再执行的语…

Go分布式缓存 一致性哈希(hash)(day4)

Go分布式缓存 一致性哈希(hash)(day4) 1 为什么使用一致性哈希 今天我们要实现的是一致性哈希算法&#xff0c;一致性哈希算法是 GeeCache 从单节点走向分布式节点的一个重要的环节。那你可能要问了&#xff0c; 童鞋&#xff0c;一致性哈希算法是啥&#xff1f;为什么要使用…

基于几何约束的传动机构设计

本文介绍如何使用参数化 CAD 软件中几何约束的强大功能来加速机构的开发。 许多 CAD 程序提供了用于分析和改进机制的工具。但是&#xff0c;这些假设你已经有了初始设计。合成机构的经典图形方法提供了确定连杆长度和关节位置以产生特定运动的方法。 这些方法可以使用参数化…

工作这么久了,还不懂多线程吗?

浩哥Java多线程整理学习系列之01 基础知识整理 浩哥Java多线程整理学习系列之01基础知识整理1. 如何查看电脑核数及线程数Linux查询CPU核心数2. 线程和进程、协程之间的区别3. 时间片轮转&#xff08;RR&#xff09;调度算法4. 并行和并发的区别5. 系统限制线程数6. 并发的优缺…

[go学习笔记.第十四章.协程和管道] 1.协程的引入,调度模型以及运行cpu数目,协程资源竞争问题

1.先看一个需求 需求&#xff1a; 要求统计 1~9000000000 的数字中&#xff0c;哪些是素数&#xff1f; 分析思路&#xff1a; (1).传统的方法&#xff0c;就是使用一个循环&#xff0c;循环的判断各个数是不是素数.(很慢) (2).使用并发或者并行的方式&#xff0c;将统计素数的…

CEX暴雷怎么办 一文读懂加密钱包产业现状

你的钱其实并不在你的借记卡里&#xff0c;借记卡只是授权你的银行帐户向银行系统数据库发送交易。同样&#xff0c;你的代币也并不在你的加密钱包里。加密钱包只是持有私有密钥以证明对数字资产的所有权&#xff0c;而这些资产是存储在公共区块链网络上的。私钥能让你对加密钱…

详细介绍BERT模型

文章目录BERT简介BERT, OpenAI GPT, 和ELMo之间的区别相关工作BERT的改进BERT 的详细实现输入/输出表示预训练BERT微调BERTBERT用在下游任务GLUE(一个自然语言任务集合)SQuAD v1.1(QA数据集)SQuAD v2.0SWAG消融实验预训练任务的影响模型大小的影响基于特征的BERT方法结论BERT简…