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


      先简单介绍一下 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.
      在这里插入图片描述
  • 相关阅读:
    关于实行专业技术职务聘任制度的规定
    目标检测场景SSD-Mobilenetv1-FPN
    勒索软件攻击防护中的6个常见错误
    基于FPGA实现FPDLINK III
    localStorage
    Day 04 python学习笔记
    CSDN博客中插入公式的对齐操作
    架构孪生:架构的数字化形态???
    21天学会C++:Day12----初始化列表
    HTML+CSS大作业 格林蛋糕(7个页面) 餐饮美食网页设计与实现
  • 原文地址:https://blog.csdn.net/Onion_521257/article/details/127847498