【Nginx】(二)Nginx 工作流程与模块功能详解

Nginx 工作流程

Nginx 的工作流程是一系列连续的步骤,从启动到接收请求,处理请求,直到关闭。以下是 Nginx 工作流程的简要概述:

  1. 开始:Nginx 服务的启动准备。
  2. 启动 Nginx :加载配置文件 nginx.conf,初始化内部数据结构。
  3. 加载配置:解析配置文件,设置工作进程和事件模型。
  4. 创建工作进程:生成 worker processes 以处理并发请求。
  5. 监听端口:在指定端口上监听网络请求。
  6. 接收并处理请求:根据请求类型,Nginx 将使用不同的模块来处理请求。
  7. 发送响应:将处理结果作为响应返回给客户端。
  8. 记录日志:记录请求和响应的详细信息。
  9. 管理连接:根据配置,决定是否保持连接开启。
  10. 等待新请求或关闭信号:准备接收新的请求或响应关闭信号。
  11. 关闭信号:响应关闭信号,准备停止服务。
  12. 关闭 Nginx:优雅地结束工作进程,关闭监听端口。
  13. 结束:所有工作进程结束,服务关闭。

Nginx模块

在 Nginx 的工作流程中,不同的模块在不同的节点发挥作用:

启动 Nginx 时加载的模块:

  • 核心模块:提供基本的服务器功能。

  • 事件模块:定义事件处理机制。

创建工作进程时加载的模块:

  • HTTP 模块:处理 HTTP 请求和响应。

  • Mail 模块:处理邮件协议请求。

监听端口时涉及的模块:

  • HTTP 模块:监听 HTTP 和 HTTPS 请求。

接收并处理请求时涉及的模块:

  • 静态内容模块:提供静态资源服务。

  • 动态内容模块:代理动态请求到后端服务器。

  • 负载均衡模块:分配请求到多个后端服务器。

  • SSL/TLS 模块:处理加密请求和证书管理。

发送响应和记录日志时涉及的模块:

  • 日志模块:记录访问和错误日志。

管理连接时涉及的模块:

  • 连接管理模块:管理客户端连接的生命周期。

等待新请求或关闭信号时涉及的模块:

  • 核心模块:处理新请求或关闭信号。

Nginx 关闭流程

Nginx 的关闭流程是优雅和有序的,确保所有活动连接都被妥善处理:

  1. 关闭信号:接收到关闭信号后,Nginx 开始关闭流程。
  2. 关闭 Nginx
    • 停止接收新请求。
    • 完成正在处理的请求。
    • 关闭工作进程。
    • 关闭监听的端口。
  3. 清理资源:释放分配给 Nginx 使用的所有资源。
  4. 结束:所有工作进程结束,Nginx 服务完全关闭。

通过这个关闭流程,Nginx 确保了服务的稳定性和数据的完整性,即使在服务器需要重启或维护时也能保证用户的请求尽可能得到处理。

相关推荐
ajsbxi16 分钟前
苍穹外卖学习记录
java·笔记·后端·学习·nginx·spring·servlet
萨格拉斯救世主30 分钟前
戴尔R930服务器增加 Intel X710-DA2双万兆光口含模块
运维·服务器
无所谓จุ๊บ32 分钟前
树莓派开发相关知识十 -小试服务器
服务器·网络·树莓派
Jtti33 分钟前
Windows系统服务器怎么设置远程连接?详细步骤
运维·服务器·windows
道法自然040240 分钟前
Ethernet 系列(8)-- 基础学习::ARP
网络·学习·智能路由器
yeyuningzi1 小时前
Debian 12环境里部署nginx步骤记录
linux·运维·服务器
EasyCVR2 小时前
萤石设备视频接入平台EasyCVR多品牌摄像机视频平台海康ehome平台(ISUP)接入EasyCVR不在线如何排查?
运维·服务器·网络·人工智能·ffmpeg·音视频
明月看潮生2 小时前
青少年编程与数学 02-003 Go语言网络编程 15课题、Go语言URL编程
开发语言·网络·青少年编程·golang·编程与数学
龙哥说跨境3 小时前
如何利用指纹浏览器爬虫绕过Cloudflare的防护?
服务器·网络·python·网络爬虫
懒大王就是我3 小时前
C语言网络编程 -- TCP/iP协议
c语言·网络·tcp/ip