zoukankan      html  css  js  c++  java
  • nginx源码分析:module机制

     根据nginx官方文档,添加一个module的介绍,当我们需要添加一个module时,需要以下操作:

    1、为该module新建一个目录。

    2、添加一个config文件,一个module核心代码源文件。

    3、为configure添加参数--add-module=/path/to/module,然后重新编译。

    这个操作步骤我们都很熟悉,那么为什么这样操作后就可以把这个module添加到nginx中呢?

    执行configure后,会在nginx源码目录下objs目录下生成一个ngx_modules.c文件,该文件中包含了nginx编译时需要编译进去的modules。

    当我们添加了--add-module=/path/to/module之后,会把该module添加到ngx_modules.c文件中。

    该文件是源文件,包含了ngx_modules的定义,在src/core/ngx_module.h中包含ngx_modules的声明,这样在其他地方就可以引用ngx_modules,下面会看到引用它的地方。

    然后在ngx_preinit_modules函数中,设置了ngx_modules中的各个module的索引和名字。

    然后,在ngx_cycle_modules函数中将ngx_moduels拷贝到cycle->modules中。

    最后,在ngx_init_modules函数中调用每个module的init函数进行初始化。

    到此为止,nginx module的机制就介绍完了,可以看到这种设计非常方便对nginx进行扩展。

  • 相关阅读:
    说一下Mysql索引
    B树、B-树、B+树、B*树之间的关系
    Mybatis Plus 的优点
    JVM垃圾回收机制
    Java中的集合
    MQ 面试题
    Redis 双写一致性
    Redis 主从复制
    C#中Abstract和Virtual的区别
    C#设计模式(2)——简单工厂模式
  • 原文地址:https://www.cnblogs.com/lit10050528/p/8660495.html
Copyright © 2011-2022 走看看