Nginx
文章平均质量分 75
Nginx源码学习
码农诗人
不以物喜,不以己悲,得之淡然,失之坦然
展开
-
Nginx实现tcp代理并支持TLS加密实验
nginx代理tcp服务,实现客户端与服务器之间的TLS加密。原创 2023-11-08 10:23:12 · 2044 阅读 · 0 评论 -
内存池简单案例
比较nginx内存池的效率案例原创 2022-11-30 10:59:43 · 685 阅读 · 0 评论 -
红黑树实现定时器
借助nginx中红黑树源码实现一个简单定时器demo原创 2022-11-16 10:34:02 · 971 阅读 · 0 评论 -
Nginx学习之ngx_cycle_s中的四维指针
好记性不如烂笔头!刚开始看完一遍nginx的源码,由于源码工程量比较大,看完之后理解了,过一段时间再回过头来看又有点遗忘。所以决定做一下记录,以便后续翻阅,如有漏错,欢迎指正。ngx_cycle_s结构体可以说是Nginx中最为重要的结构体,它贯穿着整个进程代码。本节我就该结构中的 void ****conf_ctx 四级指针进行深入学习。Nginx的所有配置结构体全部放在conf_ctx这个四维指针中。下来我们先熟悉一下源码中,ngx_init_cy...原创 2021-11-09 10:21:46 · 2409 阅读 · 0 评论 -
Nginx学习之内存管理
Nginx内存管理模块中,ngx_align_ptr()函数是用来对指针的设置。具体设置是:将指针按照设定的字节对齐返回对齐设置后的指针。 其实也很简单。通过代码案例来理解比较清楚的理解,代码运行环境为Linux 64位操作系统。具体代码如下:#include <stdio.h>#include <stdlib.h>#include <sys/types.h>#include <inttypes.h>#defi...原创 2021-11-04 10:48:21 · 3749 阅读 · 1 评论 -
Nginx事件模块学习之定时器
Nginx中的定时器是自己利用红黑树实现的,下来逐步分析一下nginx对定时器的实现。 首先,Nginx的工作进程是一个无限for循环,主要代码如下:static void ngx_worker_process_cycle(ngx_cycle_t *cycle, void *data){ …… // 工作进程初始化调用 ngx_worker_process_init(cycle, worker); …… // 无限循环 for ( ;; )...原创 2021-10-29 15:21:21 · 1795 阅读 · 0 评论 -
Nginx事件模块学习之epoll
epoll模型的系统调用接口接收及内核实现浅谈。原创 2018-12-21 16:39:21 · 1219 阅读 · 0 评论 -
Nginx数据结构学习
在nginx源码中,用了大量的数据结构,现对在nginx源码中对数据结构常用的一种方法进行一些总结。 nginx的事件模块的数据结构中定义了两个变量:timer,queue;结构体如下:struct ngx_event_s { void *data; …… ngx_rbtree_node_t timer; ngx_queue_t queue; ……};其实timer变量是为了将ng...原创 2021-10-28 12:31:47 · 733 阅读 · 0 评论 -
Nginx事件模块学习之连接
本节主要的最近学习的nginx事件模块做一下学习总结。通过对nginx整体的学习,觉得nginx的事件模块最主要的两个结构 ngx_connection_t,ngx_event_t,ngx_connection_t结构主要存储TCP连接结构, 对应ngx_event_t结构则存储对应位置上连接的读写事件,nginx的事件模块可以配置,linux下默认用内核提供的epoll机制,本节暂不细讨论epoll机制原理。 对上述两个结构进行了简化,如下:struct ngx_c...原创 2021-10-27 12:14:18 · 452 阅读 · 0 评论