module -- 6




200x200


引言上一篇文章中,我们介绍了 GoLang 中包的使用与包管理机制GoLang 包的使用与管理 从 GoLang 1.11 版本开始,官方推

#技术贴    #module    #package    #golang   

200x200


引言当代码量非常大时,仅仅在一个文件中编写 python 代码显然是不现实的此时我们需要将我们的系统划分成多个模块,模块间相互引用和调用那些自我包含并且有组织的代码片断就是模块&n

#技术帖    #python    #module    #import   

200x200


 ngxin 配置结构要理解 HTTP 模块配置解析的过程,首先需要对 nginx 的配置文件结构做一个了解nginx 的配置文

#技术帖    #龙潭书斋    #服务器    #nginx   
概述监听连接数组、复用连接队列、模块配置上下文初始化上篇日志中,我们对 nginx 各模块初始化有了大致的了解,可是在循环中究竟做了什么呢?我们需要仔细观察 ngx_init_cycle 是 nginx 初始化进程中最重要的一个环节,其中对模块配置文件的创建和初始化以及对模块的初始化就是这个初始化函数中最重要的环节了在调用 ngx_init_cycle 前,首先对所有模块进行了编号:// objs/ngx_modules.c // ngx_module_t *ngx_modules[] {{{ // &ngx_core_module, // NGX_CORE_MODULE // &ngx_errlog_module, // NGX_CORE_MODULE // &ngx_conf_module, // NGX_CONF_MODULE // &ngx_events_module, // NGX_CORE_MODULE // &ngx_event_core_module, // NGX_EVENT_MODULE // &ngx_epoll_module,
#技术帖    #龙潭书斋    #nginx    #源码   

200x200


nginx 模块结构图  nginx 模块数组在 nginx.c 中,首次使用下面的循环为所有的模块编号:for (i = 0; ngx_m

#技术帖    #龙潭书斋    #nginx    #源码   
概述在 nginx 初始化流程的介绍中,我们已经看到 nginx module 是怎么初始化和加载的,nginx module 提供了抽象的接口,由各个实际的模块实现者去实现相应的接口,当然,事件模块也是如此 EPOLL 模块 module 定义// struct ngx_event_module_t // 事件模块结构体 {{{ typedef struct { // 模块名称 ngx_str_t *name; // 解析配置前,用于创建存储配置项参数结构体的回调函数 void *(*create_conf)(ngx_cycle_t *cycle); // 解析配置完成后,用于综合处理某些配置项 char *(*init_conf)(ngx_cycle_t *cycle, void *conf); // 对于事件驱动机制,每个事件需要实现的 10 个抽象方法 ngx_event_actions_t actions; } ngx_event_module_t; // }}}  在事件模块结构体的最后定义了 
#技术帖    #龙潭书斋    #io    #epoll   



京ICP备15018585号