avatar

Wz Blog

运维学习・持续更新

  • 首页
  • 文章
  • 登录/注册
  • 管理后台
主页 Nginx问答题
文章

Nginx问答题

发表于 2026-10-11 更新于 2026-10- 11
作者 Administrator
3~4 分钟 阅读

▶ nginx工作原理:

• Nginx核心架构:Master-Worker模型

▪ Nginx启动后生成两类进程:

1.Master(主进程,管理员),不处理用户HTTP请求,管理所有Worker子进程

2.Worker(子进程,干活的),真正接受浏览器请求,处理请求,默认进程数=CPU核心数,Worker只是继承Master已经开好的监听端口,**这是reload实现平滑无中断的关键**

▪ 执行reload之后,发生了什么?

1.Master收到信号,加载、校验新版配置文件

2.Master启动一批全新Worker子进程,新Worker加载新的配置,继承监听端口,立刻开始接收新来的客户端请求。

**此时新旧Worker同时共存,新Worker:新配置,接新请求,旧Worker:旧配置,还在处理已经建立好的旧连接**

3.Master向旧Worker发送优雅关闭信号,旧Worker处理完手上所有连接后自动退出消亡,只剩新Worker,重载完成。

执行 nginx -s reload

↓

Master收到SIGHUP信号

↓

校验nginx.conf新配置

↓

(校验通过) 创建新Worker进程(新配置,接收新请求)

↓

通知旧Worker:停止接新请求,做完手头工作再退出

↓

旧Worker逐个处理完存量请求,陆续退出

↓

只剩新Worker,reload完成

▶ Nginx为什么拥有高性能并且能够支撑高并发?

Nginx采用多进程+异步非阻塞方式(**IO多路复用Epoll** )

IO多路复用:1个服务员+按铃系统(高效省资源)

多线程:雇100个服务员(资源爆炸)

▶ Worker争抢式有哪些好处?

(1)可以使用nginx -s reload热部署

(2)每个worker都是独立的进程,如果有其中的一个worker出现问题,其他worker独立争抢,实现请求过程,不会造成服务中断。

▶ Nginx日志分割

编写nginx日志分割脚本**(实际工作中很重要)**

Nginx:ogRotate.sh

#!/bin/bash

LOGS_PATH=/var/log/nginx #日志存放路径

YESTERDAY=$(date -d "-1 day" +%Y-%m-%d) #昨天

cp把原来的文件备份为原文件名_日期.log

清空源日志文件信息:>${LOGS_PATH}/access.log

▶ 常见错误页的处理

**• 200:请求成功!服务器正常返回了数据**

**• 301:永久重定向。网址搬家了。**

• 302:临时重定向。网址暂时换了。

• 304:没变过,用缓存吧!你本地缓存的文件还能用,不用重新下载

• 400:发送了无效请求!

• 401:没带通行证!需要登陆或认证。一般会跳转到登陆界面。

**• 403:权限不足,禁止访问。没有配置默认index.html也会出现。**

**• 404:页面找不到**

**• 500:服务器后台代码崩了!**

**• 502:网关炸了!Nginx后面服务没响应或挂了。后端服务没启动,负载过高**

**• 503:服务器超负荷,忙不过来**

**• 504:服务器处理超时(比如数据库查询卡死)**

Web与网络
笔记 Nginx
许可协议:  CC BY 4.0
分享

相关文章

10月 11, 2026

Nginx问答题

▶ nginx工作原理: • Nginx核心架构:Master-Worker模型 ▪ Nginx启动后生成两类进程: 1.Master(主进程,管理员),不处理用户HTTP请求,管理所有Worker子进程 2.Worker(子进程,干活的),真正接受浏览器请求,处理请求,默认进程数=CPU核心数,W

10月 11, 2026

Nginx的优化思路和匹配优先级

**▶ Nginx优化方案:** **• 基础优化:** ▪ 使用最新稳定版本 ▪ 选择合适的编译参数 减少不必要的模块可以提升Nginx启动速度和运行效率 **• 性能优化:** ▪ 调整worker进程: 默认worker_processes数量通常设置为CPU核心数: worker_proce

10月 11, 2026

8.13 Nginx

• Nginx常用到的命令: ▪ nginx -s stop:快速关闭nginx,可能不保存相关信息,迅速终止web服务 ▪ nginx -s quit:平稳关闭nginx,保存相关信息,有安排的结束web服务 ▪ nginx -s reload:改变了nginx相关配置,需要重新加载 ▪ ngin

下一篇

Pod控制器

上一篇

Nginx的优化思路和匹配优先级

最近更新

  • Kubernetes v1.28.2 双Master堆叠etcd + Haproxy/Keepalived 高可用部署 SOP(Docker + cri-dockerd)
  • 名词解释
  • ECS 实例反复冻结 —— 故障根因分析报告
  • 运维六大工作内容
  • 磁盘相关命令

热门标签

监控 Linux 数据库 Docker 笔记 CI/CD Kubernetes Nginx

目录

©2026 Wz Blog. 保留部分权利。

使用 Halo 主题 Chirpy