常见 HTTP 状态码详解与Nginx 文件上传大小限制
在我们日常使用 Nginx 搭建网站或应用服务时,可能会遇到很多与文件上传和请求响应相关的问题。今天我们就来聊聊 如何限制文件上传的大小,并介绍一些常见的 HTTP 状态码 及其在 Nginx 中的处理方式。
一、文件上传大小限制
有时,我们需要限制用户上传文件的大小,以防止上传过大的文件占用服务器资源。在 Nginx 中,可以通过 client_max_body_size
指令轻松实现这一目的。该指令用于限制 HTTP 请求体的最大大小,也就是用户上传的文件大小。
配置方法
你可以将该指令放在不同的配置块中,决定其作用范围。
-
全局限制(针对所有请求):
http {client_max_body_size 50M; # 限制请求体最大为 50M... }
-
针对某个虚拟主机的限制:
server {listen 80;server_name example.com;client_max_body_size 50M; # 针对 example.com 限制最大上传为 50Mlocation / {...} }
-
针对特定路径的限制:
server {listen 80;server_name example.com;location /upload {client_max_body_size 100M; # 仅针对 /upload 路径限制最大上传为 100M} }
413 Request Entity Too Large 错误
如果上传的文件超过了我们设置的限制,Nginx 会返回 413 Request Entity Too Large
错误。我们可以为这个错误配置自定义的页面:
server {error_page 413 /custom_413.html;location = /custom_413.html {root /usr/share/nginx/html;}
}
配置生效
配置完成后,我们需要进行以下操作,使更改生效:
- 测试配置文件是否正确:
sudo nginx -t
- 重新加载 Nginx 配置:
sudo systemctl reload nginx
二、常见 HTTP 状态码详解
HTTP 状态码是服务器返回给客户端的重要信息,用于指示请求的处理结果。不同状态码代表不同的请求结果,下面列出一些常见的状态码及其在 Nginx 中的处理方式。
1. 200 OK
- 解释:请求成功,服务器正常返回了资源。
- Nginx:无需特别配置,默认返回。
2. 301 Moved Permanently
- 解释:请求的资源已永久移动到新的位置。
- Nginx 配置:
server {listen 80;server_name example.com;return 301 https://newdomain.com$request_uri; }
3. 302 Found
- 解释:资源暂时移动,客户端可以继续使用原 URL 进行请求。
- Nginx 配置:
server {listen 80;server_name example.com;return 302 https://newdomain.com$request_uri; }
4. 403 Forbidden
- 解释:服务器拒绝处理请求,可能是因为没有权限访问资源。
- Nginx 配置:
server {location /restricted {deny all;} }
5. 404 Not Found
- 解释:服务器无法找到请求的资源,通常是因为资源已删除或不存在。
- Nginx 配置:
server {location / {try_files $uri $uri/ =404;} }
6. 422 Unprocessable Entity
- 解释:服务器理解请求内容,但由于请求数据有误,无法处理请求。通常在验证失败时使用。
- Nginx 配置:
server {error_page 422 /custom_422.html;location = /custom_422.html {root /usr/share/nginx/html;} }
7. 500 Internal Server Error
- 解释:服务器内部错误,无法处理请求,通常是服务器端程序出现问题。
- Nginx 配置:
server {error_page 500 502 503 504 /50x.html;location = /50x.html {root /usr/share/nginx/html;} }
8. 502 Bad Gateway
- 解释:服务器作为网关或代理,接收到无效的响应,通常发生在后端服务有问题时。
- Nginx 配置:
server {error_page 502 /custom_502.html;location = /custom_502.html {root /usr/share/nginx/html;} }
9. 503 Service Unavailable
- 解释:服务器暂时无法处理请求,可能是因为维护或负载过高。
- Nginx 配置:
server {error_page 503 /custom_503.html;location = /custom_503.html {root /usr/share/nginx/html;}location / {if ($maintenance) {return 503;}} }
三、总结
Nginx 是强大且灵活的服务器,能够通过配置文件轻松控制上传文件大小,并为各种 HTTP 状态码提供自定义的响应页面。在实际项目中,根据需要合理配置 Nginx 的行为,既可以提高安全性,又能提升用户体验。
相关文章:

常见 HTTP 状态码详解与Nginx 文件上传大小限制
在我们日常使用 Nginx 搭建网站或应用服务时,可能会遇到很多与文件上传和请求响应相关的问题。今天我们就来聊聊 如何限制文件上传的大小,并介绍一些常见的 HTTP 状态码 及其在 Nginx 中的处理方式。 一、文件上传大小限制 有时,我们需要限…...

在mac中使用numbers对数据进行分列(更详细的回答,已解决)
不想看我废话的同学直接看 “ 二、真正的方法 ” 不是抄袭不是抄袭,目前我能检索到的关于number分列的只有两篇回答,但我觉得有待补充,如果看不懂另外的回答,可以来看我的 这么问我猜大概率是Windows转macOS用户,不是…...

网格参数的应用和数学基础
引言 对于任意两个拓扑结构相似的表面,可以计算它们之间的一一对应映射。如果其中一个表面由三角形网格表示,那么计算这种映射的问题被称为网格参数化。映射到的表面通常被称为参数域。表面网格与各种域之间的参数化在计算机图形学和几何处理中有广泛的应…...
【Go】-基于Gin和GORM的小清单项目
目录 项目介绍 简介 技术 项目结构 项目分析 总结 项目介绍 简介 项目地址:knoci/list: 基于Gin的待办清单小项目 (github.com) 一个仿照github/Q1mi/bubble 做的一个gin框架练习 技术 gin 框架gorm 操作PostgreSQLini 配置文件 项目结构 list ├── R…...

【银河麒麟高级服务器操作系统】虚拟机服务器执行systemctl提示timeout——分析全过程及处理建议
了解更多银河麒麟操作系统全新产品,请点击访问 麒麟软件产品专区:https://product.kylinos.cn 开发者专区:https://developer.kylinos.cn 文档中心:https://documentkylinos.cn 现象描述 产品信息 产品名称 银河麒麟高级服务…...

【Unity错误】No cloud project ID was found by the Analytics SDK
在编译默认的URP 2D项目时,出现这样一个错误:No cloud project ID was found by the Analytics SDK. This means Analytics events will not be sent. Please make sure to link your cloud project in the Unity editor to fix this problem. 原因&…...

2. 变量和指令(omron 机器自动化控制器)——1
机器自动化控制器——第二章 变量和指令 1 2-1 变量一览表MC通用变量轴变量▶ 轴组变量 运动控制指令的输入变量输入变量的有效范围▶ 枚举体一览表 运动控制指令的输出变量运动控制指令的输入输出变量 2-1 变量一览表 MC功能模块使用的变量分为两类。 一类是监视轴等的状态及…...

gpt4最新保姆级教程
如何使用 WildCard 服务注册 Claude3 随着 Claude3 的震撼发布,最强 AI 模型的桂冠已不再由 GPT-4 独揽。Claude3 推出了三个备受瞩目的模型:Claude 3 Haiku、Claude 3 Sonnet 以及 Claude 3 Opus,每个模型都展现了卓越的性能与特色。其中&a…...

Java:继承和多态(1)
在 Java SE 中,继承和多态是面向对象编程(OOP)的两个核心概念。通过继承,子类可以复用父类的代码;而通过多态,子类可以在不修改父类的前提下定义自己的行为。这两者结合起来使得代码更具扩展性、灵活性和可…...
在RabbitMQ中四种常见的消息路由模式
1. Fanout模式 Fanout模式的交换机是扇出交换机(Fanout Exchange),它会将消息广播给所有绑定到它的队列,而不考虑消息的内容或路由键。 工作原理: 生产者发送消息到Fanout Exchange。Fanout Exchange会将消息广播给…...

Android 使用JSON动画:Lottie框架基本使用
Lottie是什么? GitHub的一种跨平台动画解决方案三方框架 使用? 3步 1.引入最新的依赖:https://github.com/airbnb/lottie-android 我写文章时最新版本是6.5.2 添加到 app/build.gradle 文件的以下方法中dependencies {//lottie 动画implementation com.airbnb.android:l…...

【SQL】百题计划 - SQL最基本的判断和查询。
[SQL]百题计划 Select product_id from Products where low_fats "Y" and recyclable "Y";...
C++学习笔记----6、内存管理(五)---- 智能指针(2)
书接上回! make_unique()使用值初始化。例如,将初始类型初始化为0,对象为缺省构造。如果不需要这样的值初始化,例如,因为不管怎么样你都会覆写共初始值,你就可以省略值初始化,通过使用make_uniq…...

游戏出海迎新变局——海外游戏市场有哪些新趋势和新机遇?
游戏出海的热度越来越高,也面临着竞争加剧、门槛提升、成本增加的现实环境,游戏出海有哪些新变化和新趋势? 移动游戏出海的主要海外市场 在海外市场分布方面,美日韩仍然是我国移动游戏重要的海外市场,占据了中国出海…...

【Unity踩坑】创建新项目后提示编译错误要进入安全模式
在创建了新项目后(比如URP,AR,VR),首次打开时提示有编译错误,要进入安全模式。 脚本是项目模板自带的,不会有问题。这时需要先选择进入安全模式,然后关闭项目,重新打开就…...

SpringBoot开发——整合Logbook进行HTTP API请求响应日志输出
文章目录 1. 简介依赖管理2. 实战案例2.1 基本用法2.2 结合Logback日志记录到文件2.3 自定义核心类Logbook2.4 自定义日志输出Sink2.5 与RestTemplate集成1. 简介 记录HTTP API请求响应日志对于监控、调试和性能优化至关重要。它帮助开发者追踪API的使用情况,包括请求来源、参…...
【嵌入式开发 Linux 常用命令系列 7.1 -- git log 只显示日期和主题(title)和commit id】
文章目录 git log 只显示日期和主题(title)和commit id示例其他日期格式选项 git log 只显示日期和主题(title)和commit id 要使用 git log 仅显示提交的日期、提交消息(title)和提交号(commit hash),你可以使用自定义…...
Android Radio2.0——交通公告状态设置(二)
通过前面的学习,我们知道在 Radio 广播中,交通公告(Traffic Announcement, TA)是一个比较重要的概念,它和交通广播(Traffic Radio)是相关的概念,但它们并不完全相同。 一、简介 1、概念介绍 交通公告 定义:交通公告是指在广播中插入的特别信息,通常是关于交通状况…...

用centos安装远程迅雷失败,重写程序做一台下载服务器
安装远程迅雷的时候,要不是安装包地址过期,就是出现64不兼容32的libz.so.1的包,而且32位的libz包也是好多网站过期。 没办法用仅有的python3,用flask搭建了一个小型的内网下载服务器,当然,只要路由器做映射…...

Mysql基础练习题 1407.排名靠前的旅行者(力扣)
编写解决方案,报告每个用户的旅行距离。 # 返回的结果表单,以 travelled_distance 降序排列 ,如果有两个或者更多的用户旅行了相同的距离, 那么再以 name 升序排列 。 题目链接: https://leetcode.cn/problems/top-travellers/d…...

【Axure高保真原型】引导弹窗
今天和大家中分享引导弹窗的原型模板,载入页面后,会显示引导弹窗,适用于引导用户使用页面,点击完成后,会显示下一个引导弹窗,直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…...

springboot 百货中心供应链管理系统小程序
一、前言 随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,百货中心供应链管理系统被用户普遍使用,为方…...
Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以?
Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以? 在 Golang 的面试中,map 类型的使用是一个常见的考点,其中对 key 类型的合法性 是一道常被提及的基础却很容易被忽视的问题。本文将带你深入理解 Golang 中…...

关于nvm与node.js
1 安装nvm 安装过程中手动修改 nvm的安装路径, 以及修改 通过nvm安装node后正在使用的node的存放目录【这句话可能难以理解,但接着往下看你就了然了】 2 修改nvm中settings.txt文件配置 nvm安装成功后,通常在该文件中会出现以下配置&…...

UDP(Echoserver)
网络命令 Ping 命令 检测网络是否连通 使用方法: ping -c 次数 网址ping -c 3 www.baidu.comnetstat 命令 netstat 是一个用来查看网络状态的重要工具. 语法:netstat [选项] 功能:查看网络状态 常用选项: n 拒绝显示别名&#…...
蓝桥杯 2024 15届国赛 A组 儿童节快乐
P10576 [蓝桥杯 2024 国 A] 儿童节快乐 题目描述 五彩斑斓的气球在蓝天下悠然飘荡,轻快的音乐在耳边持续回荡,小朋友们手牵着手一同畅快欢笑。在这样一片安乐祥和的氛围下,六一来了。 今天是六一儿童节,小蓝老师为了让大家在节…...

Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility
Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility 1. 实验室环境1.1 实验室环境1.2 小测试 2. The Endor System2.1 部署应用2.2 检查现有策略 3. Cilium 策略实体3.1 创建 allow-all 网络策略3.2 在 Hubble CLI 中验证网络策略源3.3 …...

DIY|Mac 搭建 ESP-IDF 开发环境及编译小智 AI
前一阵子在百度 AI 开发者大会上,看到基于小智 AI DIY 玩具的演示,感觉有点意思,想着自己也来试试。 如果只是想烧录现成的固件,乐鑫官方除了提供了 Windows 版本的 Flash 下载工具 之外,还提供了基于网页版的 ESP LA…...
python如何将word的doc另存为docx
将 DOCX 文件另存为 DOCX 格式(Python 实现) 在 Python 中,你可以使用 python-docx 库来操作 Word 文档。不过需要注意的是,.doc 是旧的 Word 格式,而 .docx 是新的基于 XML 的格式。python-docx 只能处理 .docx 格式…...

CMake 从 GitHub 下载第三方库并使用
有时我们希望直接使用 GitHub 上的开源库,而不想手动下载、编译和安装。 可以利用 CMake 提供的 FetchContent 模块来实现自动下载、构建和链接第三方库。 FetchContent 命令官方文档✅ 示例代码 我们将以 fmt 这个流行的格式化库为例,演示如何: 使用 FetchContent 从 GitH…...