源码阅读说明
自这篇文档开始就是源码理解了,开始之前请先了解下nginx的module的编写方式,请参看下面的文档:
http://tengine.taobao.org/book/chapter_03.html
主要结构体
主要结构体定义在 src/naxsi.h中。
ngx_http_naxsi_main_conf_t
从配置文件naxsi_core.rules读取的策略就存储该结构体中
typedef struct
{ngx_array_t* get_rules; // ngx_http_rule_t, 通过 ngx_http_naxsi_read_main_conf 函数填充ngx_array_t* body_rules; // ngx_http_rule_t, 通过 ngx_http_naxsi_read_main_conf 函数填充ngx_array_t* header_rules; // ngx_http_rule_t, 通过 ngx_http_naxsi_read_main_conf 函数填充ngx_array_t* generic_rules; // ngx_http_rule_t, 通过 ngx_http_naxsi_read_main_conf 函数填充ngx_array_t* raw_body_rules; // ngx_http_rule_t, 通过 ngx_http_naxsi_read_main_conf 函数填充ngx_array_t* locations; //ngx_http_naxsi_loc_conf_t , 通过ngx_http_naxsi_read_conf等函数读取填充ngx_log_t* log;