Nginx入门学习二

一、Nginx启动时框架的处理流程

1.nginx启动时,会先解析命令行并处理命令行的参数,会提前创建一个临时的ngx_cycle_t类型变量用它的成员存储配置文件路径。

2.如果处于升级中,会调用ngx_inherited_sockets方法来使得平滑升级时不重启master进程启动新版本,旧版本的master进程会通过execve系统覅用来启动新版本的master进程,旧版本的master进程需通过一种方式告诉新版本master进程这是在平滑升级并通过环境变量来传递一些你要的信息。

3.在ngx_init_cycle方法中执行,在初始化ngx_cycle_t中所有的容器后,会为读取和解析配置文件做准备工作并创建相应的数据结构来存储配置文件中的各个配置项,即调用所有核心模块的create_conf方法来构造存储配置项的结构体。

4.调用配置模块提供的解析配置项的方法即通过遍历nginx.conf中所有的配置项。

5.调用ngx_core_module核心模块的init_conf方法即让所有的核心模块在解析完配置项后做综合性的处理。

6.为init_conf或者create_conf方法中需要打开的文件或者目录进行打开或者创建。

7.为需要监听的端口的数组中的每一个元素ngx_listening_t元素设置sockets句柄监听端口。

8.调用所有模块的init_module方法,根据配置的nginx运行模式决定如何工作。

9.如果进程进入master、worker工作模式在启动worker子进程、cache manage子进程、cache loader进程后进入工作状态,master进程启动流程执行完毕。

10.由master进程按照配置文件中worker中进程的数目启动这些子进程。

11.调用所有模块的init_process方法,worker进程的启动工作完成然后进入正常的循环处理事件的流程。

12.关闭只有worker进程才需要监听的端口。

相关推荐
ai小陈7 小时前
GPU服务器租用存储验收:检查点写入与磁盘吞吐实战
运维·服务器·人工智能·ai·ssh·gpu算力
FPGA小徐9 小时前
PA1 基础设施(2)深度解析:NEMU 中 ITRACE、MTRACE、FTRACE、IRINGBUF、ETRACE、DIFFTEST 全解析
java·服务器·网络
青柠之夏cc10 小时前
AI与教育:个性化学习助手让“因材施教“成为现实,但代价是隐私?
人工智能·学习
知行EDI10 小时前
知行之桥 MaBang 端口使用指南——Create Order 订单创建篇
java·服务器·数据库
for_ever_love__10 小时前
机器学习入门——手写线性回归与梯度下降
人工智能·python·学习·机器学习·线性回归
成旭先生10 小时前
【2026】企业信息模糊查询 API 实战:名称、注册号、统一社会信用代码、企业类型与法人一次查全
服务器·数据库·数据服务
在猴站学算法10 小时前
(SQL注入学习)无回显的报错注入(Error-Based)
学习·网络安全·sql注入·ctf竞赛
山岚的运维笔记12 小时前
ComfyUI NVIDIA安装教程:官方便携版下载+run_nvidia_gpu.bat启动,8G显存Windows实操
运维·服务器·windows·笔记·prompt·aigc·comfyui
知识分享小能手12 小时前
C++ 学习教程,从入门到精通,C++ 友元、异常和其他特性 — 详细知识点(15)
开发语言·c++·学习
꯭自꯭闭꯭12 小时前
DM7主备升级方案
linux·服务器·数据库