nginx学习日记
shq_yang
do it now
展开
-
首记
今天是第一天写博客,纯属心血来潮。本来只是看一看,体验一下博客这东西,看了之后觉得很有意思,看着别人阅读你写的文章应该很有意思。然后想了想,干脆就把nginx学习一下,每次学习一点,记录一点。质变来自于量变,点滴的积累将成山洪之势。原创 2015-12-13 13:51:11 · 224 阅读 · 0 评论 -
nginx pool初探
毕竟第一次,今天就来聊点比较简单的东西。如果此时正在读这篇博客的你是个老手,勿喷,仅供参考。毕竟水平有限。好了接下来进入正题:今天要聊的是nginx的资源池pool设计,这个结构体ngx_pool_t贯穿了nginx的各个地方,如果你是严格按照nginx的框架来写插件的话,那ngx_pool_t就是这些的入口。先来看看ngx_pool_t的定义(struct ngx_pool_s==>ngx_po原创 2015-12-13 22:04:08 · 483 阅读 · 1 评论 -
nginx数组
nginx官方源码是没有注释,从这里也可以嗅到nginx作者的能力。今天找到 一个nginx源码注释版—–nginx注释版地址,如有需要自行下载。。。在这里吐槽一下source insight,竟然不支持utf-8编码,机智的我只好先 用notepad++打开,在把格式转为ansi,然后再用source insight打开。好了,接下 来进入主题,这次要讲的是ngx_array_t这个结构体。原创 2015-12-29 14:05:14 · 701 阅读 · 0 评论 -
nginx hash实现
现在来聊一聊nginx的hash表,先来看一看hash表概念图。 在nginx的hash表中,只有一次初始化,之后不可修改,所以其解决冲突的开 放链式法实际上是数组的形式而不是链表。然后其key都是ngx_str_t的形式,然 后以这个字符串计算hash值。(算法为将每个字符带入key=key*31+c迭代)这种 hash表比较适合用于hash表不会变化中,但是这种hash表最大化地减少了原创 2015-12-29 21:03:40 · 485 阅读 · 0 评论 -
nginx queue设计
昨天晚上看了nginx中ngx_queue_t的设计,觉得这种设计很有意思。 首先,先看一下定义:struct ngx_queue_s { ngx_queue_t *prev; //前一个 ngx_queue_t *next; //下一个};可以看出nginx中定义的链表是双向的,而且从源码中知其亦为循环的。 这些并没有什么奇怪的。奇妙的是没有数据。。。没有数据,没原创 2016-01-07 10:10:16 · 397 阅读 · 0 评论 -
nginx---list
nginx中list的设计是数组与标准链表的折中。可以理解为是由小数组构成的链表。 数组的大小显然是由具体使用情况决定,不然就没有意义了。 先来看一下ngx_list_t的定义:typedef struct { ngx_list_part_t *last; //指向链表中最后一个元素,其作用相当于尾指针。插入新的节点时,从此开始。 ngx_list_part_t part;原创 2016-01-07 16:19:40 · 251 阅读 · 0 评论