美文网首页
Nginx模块的组织

Nginx模块的组织

作者: 0_0啊 | 来源:发表于2016-08-06 13:54 被阅读37次

Nginx为做到模块化,统一定义了一个结构体ngx_module_s,它相当于c++中的类,里面的回调函数等同于类中的成员函数,其他的字段则为成员变量。这样一个结构体就封装整个模块,包含模块的初始化、销毁过程。具体的祥见http://blog.csdn.net/livelylittlefish/article/details/6571497

在Nginx每个模块中都定义了ngx_module_s类型的静态全局变量,诸如ngx_core_modulengx_errlog_modulengx_conf_module..等等,都是各个模块定义的静态全局变量。这些变量在系统启动的时候会被统一定义到一个全局ngx_module_s数组ngx_modules中保存,并建立相应索引,以方便查询。

ngx_modules变量的定义时机在源码编译的阶段,由配置文件指定(这里没去细查)。这里就要说一说Nginx是如何安装运行的了,Nginx属于源码安装,走配置、编译、安装三部曲,在Nginx源码包中有个名为configure的配置脚本,在linux中运行它,会带动./auto目录下其他脚本的运行,最终生成objs文件夹和编译相关文件Makefile,objs目录下有一个名为ngx_modules.c的文件,在这个文件中它神奇的定义了ngx_modules并初始化,这个数组有多少个成员就代表编译生成的Nginx将会有多少的模块。系统就是通过这个数组将零散的模块聚合在一起,并成一个系统的。

因为对Nginx认识有限,针对Nginx模块与整体关系的分析目前也只能停留在表层,希望大家多多指正。

相关文章

  • Nginx模块的组织

    Nginx为做到模块化,统一定义了一个结构体ngx_module_s,它相当于c++中的类,里面的回调函数等同于类...

  • nginx源码分析--nginx模块解析

    nginx的模块非常之多,可以认为所有代码都是以模块的形式组织,这包括核心模块和功能模块,针对不同的应用场合,并非...

  • 6.Nginx模块学习方法

    Nginx模块 Nginx模块分为 Nginx官方模块 和 第三方模块 , 这里我们拿Nginx官方模块来介绍一下...

  • Nginx核心模块以及指令介绍

    Nginx模块概览 Nginx核心模块以及指令介绍 注意:Nginx的核心模块包含主模块和事件模块,即上图的cor...

  • nginx内核原理

    Nginx的模块 Nginx由内核和模块组成。 Nginx的模块从结构上分为核心模块、基础模块和第三方模块: 核心...

  • nginx 源代码分析 (二)

    1. nginx模块 nginx的功能分布在nginx模块中,一个模块为一个功能单元。每个nginx模块都专注于自...

  • 应用运维面试核心

    面试题 Nginx模块 你以前用过哪些Nginx模块? upstream 是Nginx负载均衡模块 image ...

  • nginx 动态添加模块

    需要用到nginx的tcp模块,以前安装的nginx没有这个模块。 ./nginx -V 可以看到所有包含的模块(...

  • 8.nginx模块介绍

    nginx的模块 1.编译进nginx的模块2.提供那些配置3.模块合适被使用4.提供那些变量 查找nginx模块...

  • nginx与lvs详解

    详细描述常见nginx常用模块和模块的使用示例 nginx常见的模块分类: 核心模块:core moduleNgi...

网友评论

      本文标题:Nginx模块的组织

      本文链接:https://www.haomeiwen.com/subject/icmksttx.html