使用踩坑记录
# Nginx使用踩坑记录
# 文件过大
当在使用Nginx时遇到“413 Request Entity Too Large”错误,通常是因为上传文件的大小超过了Nginx配置中允许的最大值。要解决此问题,可以通过调整Nginx配置文件中的client_max_body_size参数来增加允许上传文件的最大大小。 修改 Nginx 配置
在 Nginx 中,可以通过修改 client_max_body_size
属性来解决这个问题。
找到配置文件,nginx.conf进行设置,以下是几种不同程度的设置,
在 http 节点下(全局设置)
http {
client_max_body_size 20m; # 设置为20MB
}
1
2
3
2
3
在 server 节点下(服务器级别)
server {
client_max_body_size 20m; # 设置为20MB
}
1
2
3
2
3
在 location 节点下(特定路由)
location /upload {
client_max_body_size 20m; # 设置为20MB
}
1
2
3
2
3
修改完配置文件后,重载 Nginx 配置使之生效:
sudo nginx -s reload
1
注意:当执行
nginx.exe -s reload
后,原本的 Nginx 服务进程数量会增加,是正常现象,具体原因与 Nginx 的平滑重载机制有关。
Nginx 采用 Master-Worker 多进程模型:
- Master 进程:负责管理配置、启动/停止 Worker 进程,以及接收外部信号(如
reload
) - Worker 进程:实际处理请求的子进程。默认配置下,Worker 数量通常与 CPU 核心数一致(例如 2 个) 当执行
nginx -s reload
时,Nginx 会按以下步骤操作:
- Master 进程接收 HUP 信号:触发配置重载流程
- 校验新配置语法:若语法错误,流程终止,旧配置继续生效
- 启动新 Worker 进程:基于新配置生成新的 Worker 进程
- 旧 Worker 进程优雅退出:旧 Worker 停止接收新请求,但会继续处理已建立的连接,直到完成后才退出
上次更新: 2025/04/02, 16:14:30