• 【Nginx】http配置模型


    当Nginx检测到http关键配置项时,http配置模型启动,首先会建立一个ngx_http_cong_ctx_t结构。

    typedef struct

    {

      void **main_conf;

      void **srv_conf;

      void **loc_conf;

    }ngx_http_conf_ctx_t;

    http框架会为所有的http模块建立三个数组,分别存放所有http模块create_main_conf,create_srv_conf,create_loc_conf方法返回的地址指针。

    一、解析http配置的流程

    1.Nginx进程的主循环调用配置文件解析器来解析nginx.conf文件

    2.当发现配置文件中含有http{}关键字时,http框架开始启动。

    3.http框架会初始化所有http模块的序列号,并创建ngx_http_conf_ctx_t结构

    4.调用每个http模块的create_main_conf,create_srv_conf,create_loc_conf方法

    5.把各http模块上述三个方法返回的地址依次保存到ngx_http_conf_ctx_t结构体的单个数组中

    ...

    二、http配置模型的内存布局

    如果实现了create_main_conf方法,它所创建的结构体只会存放直接出现在http{}块下的配置项;如果实现了create_srv_conf方法,那么它所创建的结构体既会存放直接出现在http{}块下的配置项,也会存放直接出现在server{}块下的配置项,create_loc_conf方法同理。

    以上设计是考虑到nginx.conf文件中高级别的配置可以对所包含的低级别配置起作用,同时也给出了不同级别下同名配置冲突时的解决方案。

    三、如何合并配置项

    对各模块及其嵌套模块的结构体调用merge_srv_conf,merge_loc_conf操作

  • 相关阅读:
    软件测试学习随笔(1) 引言
    集成测试
    SPM-using Maven and Juint
    验收测试
    白盒测试学习
    编码的UI测试
    测试闰年
    黑盒测试续
    黑盒测试方法-等价类划分
    对软件测试的理解
  • 原文地址:https://www.cnblogs.com/ljygoodgoodstudydaydayup/p/3836413.html
Copyright © 2020-2023  润新知