本文主要是介绍nginx上下文总会,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
从上图可以看到,nginx共有6个核心模块,每个核心模块又有好多子模块,每个核心模块有一个core模块,这些模块以及各种定制模块共同构成了nginx服务器.
每个核心模块都是抽象的,并不涉及模块的具体内容,而子模块(具体模块)则专门负责一项任务,专注的去完成,从整体上看,每个模块都是ngx_module_t类型,那子模块和核心模块怎么来进行区分呢?这就引出了ngx设计的核心,上下文,利用一个指针,指向不同的上下文,来区分不同的模块,而每个大漠块又有ctx_index来区分不同的子模块.
由于上下文是完全抽象的,他的类型为void指针,我们可以将它具体化.我们来看一下下图:
:我们观察上图,不难得出以下结论:
1.每个模块的类型都是 ngx_module_t类型
2.每个核心模块的上下文都是ngx_core_module_t类型
3.每个核心模块下的子模块都遵循这个大模块的类型结构:例如event下的子模块都是ngx_event_module_t类型,而http下的子模块都是ngx_http_module_t类型.这样我们就可以区分不同模块了.并且我们用ctx_index来区分一个核心模块中不同的子模块
这篇关于nginx上下文总会的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!