nginx
Bipedal_Bit
这个作者很懒,什么都没留下…
展开
-
【三】nginx的数据结构(1)——ngx_int_t与ngx_rbtree_t
面对./src/core子目录中71个源文件,有点无从下手。浏览包含主函数的nginx.c文件,发现nginx使用了很多自行封装的数据结构,不弄清楚这是些什么样的数据结构就很难理解主函数中操作的意义。于是我们挑看起来基础的数据结构开始研究。组织nginx所有数据结构的是ngx_core.h文件。它首先包含了ngx_config.h,我们在ngx_config.h中发现了三个类型定义。 1、ngx原创 2015-08-06 07:18:04 · 3573 阅读 · 1 评论 -
【一】nginx核心架构概述
毕业前,毕设完成后,我闲极无聊接触了一下socket编程,用C++的Qt框架写了玩具一样的TCP和UDP通信客户端。跟直系学长电话聊天时被建议深挖一下socket,尝试走走后端或者架构师路线。问该怎么深挖,答研究源码,要学习socket相关知识,研究服务器源码是最合适不过的了。至于选择哪个服务器,经过考量调查,发现比起比较沉重庞大的apache,nginx更加小巧,也非常优秀。于是在开始正式吃源码原创 2015-07-23 11:01:55 · 1607 阅读 · 0 评论 -
【二】nginx源码文件结构浏览
我下载的nginx源码版本不可考,按日期来看是2015年7月的最新版本。解压包获得源码文件夹,进入根目录发现有几个子目录:auto、conf、contrib、docs、misc、src。从字面上猜测,是自动机或脚本(auto script)、配置文件(configuration)、支持文件(contributions)、文档(document)、杂项(miscellaneous)、源码(sourc原创 2015-07-23 17:01:17 · 800 阅读 · 0 评论 -
【四】nginx的数据结构(2)——自己动手重写红黑树
费话不多说,上重写代码,这次姑且用英语写的注释当复习英语了。 rbtree.h: /* * Copyright (C) Bipedal Bit * Verson 1.0.0.1 */ #ifndef _RBTREE_H_INCLUDED_ #define _RBTREE_H_INCLUDED_ /* the node structure of the red-black tr原创 2015-08-16 22:06:57 · 749 阅读 · 0 评论 -
【五】nginx的数据结构(3)——扩展红黑树
发扬我一贯的支线任务狂魔的作风,一晚上就完成了之前设想的红黑树扩展版本。 rbtree.h: /* * Copyright (C) Bipedal Bit * Verson 1.0.0.2 */ #ifndef _RBTREE_H_INCLUDED_ #define _RBTREE_H_INCLUDED_ /* the node structure of the red-bl原创 2015-08-18 02:04:42 · 744 阅读 · 0 评论