点赞
评论
收藏
分享
举报
NGINX核心框架主要数据结构
发表于2020-07-16 20:39

浏览 1.3k

作为一款源自于俄罗斯的软件,Nignx优秀的模块设计使得各个功能模块就像俄罗斯方块游戏中的一个个的方块一样被组合在一起。而粘合这些方块的,正是Nignx本身的核心框架。这个框架小巧又强大,朴实又优雅。通过最普通的技术呈现了一个实用又强大的系统框架。

要了解和学习NGINX精华的核心框架,阅读代码是必不可少的一部分。在阅读代码的过程中,如果对整个系统的主要数据结构有所了解,就能对我们理解系统运行提供很大的帮助。一个系统的主要数据结构像是我们人体的骨架和血脉,而代码就相当于我们的血液和气质,奔跑在数据结构这一骨骼之上。

利用业余时间,粗略整理一下NGINX的核心框架和http,stream模块相关的数据结构。希望对大家看代码有所帮助。

我们可以试着去理解当一个http或者stream的连接,从图右下角的socket句柄被接收,一直到他们对应的图中右中和右上的各个模块的处理函数被调用,这一过程是怎么实现的。我们也可以试着去理解,在这些连接的数据流在系统流动的过程中,各种数据结构是怎么样相互连接和协作的。


已修改于2023-03-09 02:07
本作品系原创
创作不易,留下一份鼓励
皮皮鲁

暂无个人介绍

关注



写下您的评论
发表评论
全部评论(0)

按点赞数排序

按时间排序

关于作者
皮皮鲁
这家伙很懒还未留下介绍~
85
文章
2
问答
41
粉丝
相关文章
$args#请求中的参数值$querystring#同$args$arg_NAME#GET请求中NAME的值$is_args#如果请求中有参数,值为”?”,否则为空字符串$uri#请求中的当前URI(不带请求参数,参数位于$args),可以不同于浏览器传递的$request_uri的值,它可以通过内部重定向,或者使用index指令进行修改,$uri不包含主机名,如”/foo/bar.html”。$document_uri#同$uri$document_root#当前请求的文档根目录或别名$host#优先级:HTTP请求行的主机名>”HOST”请求头字段>符合请求的服务器名.请求中的主机头字段,如果请求中的主机头不可用,则为服务器处理请求的服务器名称$hostname#主机名$https
点赞 0
浏览 1.1k
原文作者:Derek DeJonghe of F5原文链接:全球首发 | 《NGINX 完全指南》中文版转载来源:NGINX 开源社区NGINX唯一中文官方社区 ,尽在 nginx.org.cn在社区
点赞 1
浏览 7k
服务器配置:系统:windows server 2019cpu:Intel(R) Xeon(R) CPU E5-2696 v4 @ 2.20GHz * 2内存:88GB磁盘:180TB带宽:200MB
点赞 0
浏览 1.1k