首页 > 代码库 > 【Nginx】Nginx事件模块

【Nginx】Nginx事件模块

一、事件处理框架概述

事件处理框架所要解决的问题是如何收集、管理、分发事件。事件处理框架需要在不同的操作系统内核中选择一种事件驱动机制支持网络事件的处理。

步骤:

1.Nginx定义了一个核心模块ngx_events_module,该模块定义了事件类型的模块,为所有的事件模块解析events{}中的配置项,同时管理这些事件模块存储配置项的结构体

2.Nginx定义了一个非常重要的事件模块ngx_event_core_module,这个模块会决定使用哪种事件驱动机制,以及如何管理事件

3.Nginx定义了一系列(目前为9个)运行在不同操作系统、不同内核版本上的事件驱动模块

事件驱动模块接口:ngx_module_t表示Nginx模块的基本接口,而针对于每一种不同类型的模块,都有一个结构体来描述这一类模块的通用接口,这个接口保存在ngx_module_t结构体的ctx成员中。比如:事件模块的通用接口是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);//综合处理当前事件模块感兴趣的全部配置项

  ngx_event_actions_t action;//每个事件模块需要实现的十个抽象方法

}ngx_event_module_t;