[nginx源码解析]配置解析(event作用域)

企鹅博客
企鹅博客
企鹅博客
20682
文章
0
评论
2019年7月14日15:39:41 评论 2.1K views 958字阅读3分11秒

处理events

其中符合NGX_EVENT_MODULE有两个模块分别是ngx_event_core_module、ngx_epoll_module

核心代码

  ngx_modules[i]->ctx_index = ngx_event_max_module++;//设置模块内部索引
      }                                                                                                                                                             
  
      ctx = ngx_pcalloc(cf->pool, sizeof(void *));
      if (ctx == NULL) {
          return NGX_CONF_ERROR;
      }
  
      *ctx = ngx_pcalloc(cf->pool, ngx_event_max_module * sizeof(void *));//ctx指向数组
      if (*ctx == NULL) {
          return NGX_CONF_ERROR;
      }
  
      *(void **) conf = ctx;
  
      for (i = 0; ngx_modules[i]; i++) {
          if (ngx_modules[i]->type != NGX_EVENT_MODULE) {
              continue;
          }
  
          m = ngx_modules[i]->ctx;
  
          if (m->create_conf) {//如果NGX_EVENT_MODULE类型模块存在create_conf函数那么就调用该模块的create_conf函数,挂载到event上下文中
              (*ctx)[ngx_modules[i]->ctx_index] = m->create_conf(cf->cycle);//创建相应上下文
              if ((*ctx)[ngx_modules[i]->ctx_index] == NULL) {
                  return NGX_CONF_ERROR;
              }
          }
      }
  
      pcf = *cf;
      cf->ctx = ctx;
      cf->module_type = NGX_EVENT_MODULE;//设置模块环境
      cf->cmd_type = NGX_EVENT_CONF;		//设置命令类型
rv = ngx_conf_parse(cf, NULL);

然后解析worker_connections1024,该命令在ngx_event_core_module中,调用ngx_event_connections函数,设置connect值为1024,结构如下:

以上就介绍了[nginx源码解析]配置解析(event作用域),包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

继续阅读
weinxin
欢迎加入中国站长博客之家
本站的所有资源都会上传分享到博客之家,希望大家互相学习交流进步。
[nginx源码分析]主函数解析 php教程

[nginx源码分析]主函数解析

ngx_strerror_init 函数主要是先把错误信息保存在ngx_sys_errlist数组里面,做一个errno->errmsg的映射数组,当系统发生错误时候,直接就可以通过errno找...
php7内安装event扩展步骤详解 php教程

php7内安装event扩展步骤详解

这次给大家带来php7内安装event扩展步骤详解,php7内安装event扩展的注意事项有哪些,下面就是实战案例,一起来看一下。 下载地址:http://pecl.php.net/package/e...
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: