ngx_core_conf_t *ccf, *old_ccf; ngx_core_module_t *module;charhostname[NGX_MAXHOSTNAMELEN];/* 更新时区 */ngx_timezone_update();/* force localtime update with a new timezone */tp =ngx_timeofday(); tp->sec =0;/* 更新缓存时间 */ngx_time_update(); log = old_cycle->log;/*...
最近在开始看nginx的事件模块,经常看到ngx_cycle_t、ngx_connection_t和ngx_listening_t这三个结构体,刚开始没在意,看到了就重新上网变量的意思,后来觉得不弄懂这三个结构体或者不清出其中变量的意义实在是无法看下去,因为有很多函数都涉及这三个结构体。因为ngx_listening_t存储监听有关的信息,ngx_connection_t存储...
voidngx_master_process_cycle(ngx_cycle_t*cycle){char*title;u_char*p;size_t size;ngx_int_t i;ngx_uint_t n,sigio;sigset_t set;structitimervalitv;ngx_uint_t live;ngx_msec_t delay;ngx_listening_t*ls;ngx_core_conf_t*ccf;/*master 进程设置的要处理的信号*/sigemptyset(&set);sigaddset(...
让 server上下文用队列方式管理所有其下的 location{},而每个 ngx_http_core_loc_conf_t 表示一个location{},ngx_http_core_loc_conf_t.loc_conf 指向其location{}中所有的配置项,loc_conf[0] 又回指 ngx_http_core_loc_conf_t。
char *(*init_conf)(ngx_cycle_t *cycle, void *conf); } ngx_core_module_t; 在src\core\nginx.c中实现了这个结构体: static ngx_core_module_t ngx_core_module_ctx = { ngx_string("core"), //name字段 ngx_core_module_create_conf,//实现该接口的第一个方法 ...
也就是ngx_commands结构体,定义在src/core/ngx_conf_file.h中 struct ngx_command_s { ngx_str_t name; //配置指令名称 ngx_uint_t type; //配置指令类型 char *(*set)(ngx_conf_t *cf, ngx_command_t *cmd, void *conf);//该配置对应的处理函数 ...
#ifndef_NGX_CORE_H_INCLUDED_#define_NGX_CORE_H_INCLUDED_...#endif/* _NGX_CORE_H_INCLUDED_ */ 操作系统版本差异性 因为操作系统版本之间存在的差异性,所以需要通过ngx_config.h,根据当前操作系统版本把操作系统的特性加载起来。ngx_config.h后续会有文章进行分析。
2、NGX_HTTP_CONTENT_PHASE阶段与其他阶段都不同的是,它向HTTP模块提供了两种介入该阶段的方式:第一种与其他10个阶段一样,通过向全局ngx_http_core_main_conf_t结构体的phases数组中添加ngx_http_handler_pt处理方法来实现,而第二种是此阶段独有的,把希望处理请求的ngx_http_handler_pt方法设置到location相关的...
staticngx_int_tngx_http_auth_basic_init(ngx_conf_t*cf){ngx_http_handler_pt*h;ngx_http_core_main_conf_t*cmcf;cmcf=ngx_http_conf_get_module_main_conf(cf,ngx_http_core_module);h=ngx_array_push(&cmcf->phases[NGX_HTTP_ACCESS_PHASE].handlers);if(h==NULL){returnNGX_ERROR;}*h=ngx...
Features - additional conf_set functions for regexes, complex/script values, paths... - macros to simplify tasks like checking for NULL values when doing ngx_array_push - patches to the main source code - ngx_auto_lib_core generic external library handler is included (see separate readme) ...