nginx http块配置解析
在上一篇文章中,我们讲解了nginx http模块的存储结构,这个存储结构是我们理解http模块工作原理的基石。本文则主要讲解nginx是如何通过解析nginx.conf中的http配置块来一步一步构建http模块的这种存储结构的。 1. http配置块的解析 http配置块的解析方法定义在 http 配置块对应的 ngx_command_t 结构体中,如下是该结构体的定义: static ngx_command_t ngx_http_commands[] = { {ngx_string("http"), NGX_MAIN_CONF | NGX_CONF_BLOCK | NGX_CONF_NOARGS, ngx_http_block, 0, 0, NULL}, ngx_null_command }; 通过该定义可以看出, http 配置块的解析工作主要是交由 ngx_http_block() 方法进行。如下是该方法的源码: static char * ngx_http_block(ngx_conf_t *cf, ngx_command_t *cmd, void *conf) { char *rv; ngx_uint_t mi, m, s; ngx_conf_t pcf; ngx_http_module_t *module; ngx_http_conf_ctx_t *ctx; ngx