网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

nginx的http模块初始化源码分析

这篇文章主要介绍“nginx的http模块初始化源码分析”,在日常操作中,相信很多人在nginx的http模块初始化源码分析问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”nginx的http模块初始化源码分析”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

创新互联为企业提供:成都品牌网站建设、网络营销策划、小程序开发、营销型网站建设和网站运营托管,一站式网络营销整体服务。实现不断获取潜在客户之核心目标,建立了企业专属的“营销型网站建设”,就用不着再为了获取潜在客户而苦恼,相反,客户会主动找您,生意就找上门来了!

继续http模块的分析,这次分析的是init_module钩子函数的执行。http模块各子模块的init_module钩子主要做的事情是两个,一个就是注册phases回调,一个就是挂载模块到filter链表。首先看一下注册phases回调的模块
access模块

static ngx_int_t ngx_http_access_init(ngx_cycle_t *cycle)
{
    ngx_http_handler_pt        *h;
    ngx_http_core_main_conf_t  *cmcf;
    // 取出http_core_module的配置结构体
    cmcf = ngx_http_cycle_get_module_main_conf(cycle, ngx_http_core_module);
    // 设置在NGX_HTTP_ACCESS_PHASE阶段的回调
    h = ngx_push_array(&cmcf->phases[NGX_HTTP_ACCESS_PHASE].handlers);
    if (h == NULL) {
        return NGX_ERROR;
    }

    *h = ngx_http_access_handler;

    return NGX_OK;
}
 

charset模块

static ngx_int_t ngx_http_charset_filter_init(ngx_cycle_t *cycle)
{
    ngx_http_next_header_filter = ngx_http_top_header_filter;
    ngx_http_top_header_filter = ngx_http_charset_header_filter;

    ngx_http_next_body_filter = ngx_http_top_body_filter;
    ngx_http_top_body_filter = ngx_http_charset_body_filter;

    return NGX_OK;
}
 

ngx_http_top_header_filter变量是定义在ngx_http.c文件的一个全局变量。ngx_http_next_header_filter变量是每个filter模块自己定义的一个模块内可见的局部变量。ngx_http_top_body_filter类似。每个模块先令自己的next变量执行当前top变量指向的节点,然后再令top节点指向本模块的filter函数。从而实现了一条filter链表。当执行到当前模块的filter钩子后,钩子函数最后会执行next对应的下一个钩子。

到此,关于“nginx的http模块初始化源码分析”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注创新互联网站,小编会继续努力为大家带来更多实用的文章!


分享文章:nginx的http模块初始化源码分析
标题链接:http://bjjierui.cn/article/gpjcpp.html

其他资讯