当前位置: 首页 > article >正文

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进程才需要监听的端口。


http://www.kler.cn/a/520716.html

相关文章:

  • 蓝桥杯模拟算法:蛇形方阵
  • AI赋能医疗:智慧医疗系统源码与互联网医院APP的核心技术剖析
  • vue中onclick如何调用methods中的方法
  • 【leetcode100】从前序与中序遍历序列构造二叉树
  • Windows本地部署(DeepSeek-R1-Distill-Qwen-1.5B)模型
  • C#新语法
  • 【elasticsearch】reindex 断点续传
  • dm8在Linux环境安装精简步骤说明(2024年12月更新版dm8)
  • 【2024年华为OD机试】 (A卷,100分)- 模拟商场优惠打折(JavaScriptJava PythonC/C++)
  • 使用scikit-learn中的KNN包实现对鸢尾花数据集的预测
  • 被占用的电脑文件推沟里
  • 从零开始学 HTML:构建网页的基本框架与技巧
  • 【C++】类和对象(五)
  • RBAC 权限控制 - 前端
  • GESP2024年3月认证C++六级( 第三部分编程题(2)好斗的牛)
  • python基础语法(3) -------- 学习笔记分享
  • 99.17 金融难点通俗解释:归母净利润
  • Day42:列表的组合
  • 图像加解密
  • Linux内核组成
  • 品牌RWA化构建指南:资产数字化与价值共创
  • 【云原生】【适用小白】SpringCloud Alibaba开源Nacos切换到MSE Nacos
  • Helm Chart 实现 Kubernetes 应用多环境部署实战
  • 【黑龙江乡镇界】面图层arcgis数据shp格式乡镇名称和编码wgs84无偏移内容测评
  • SpringCloud系列教程:微服务的未来(十七)监听Nacos配置变更、更新路由、实现动态路由
  • 十年筑梦,再创鲸彩!庆祝和鲸科技十周年