nginx
zzb5233
这个作者很懒,什么都没留下…
展开
-
nginx开始
开始虚席nginx,书:《深入理解Nginx 模块开发与架构解析》原创 2017-09-29 11:45:24 · 213 阅读 · 0 评论 -
开发http模块
开始看nginx有段时间了,一开始是直接看源码,非常头痛,看数据结构那块没有问题,或者单个关联性比较弱的模块。但是开始看upstream模块时就遇到了问题,看不下去,对多个数据结构的含义不清楚,不得已只好重头开始。贴一张图:基于这张图说下模块调用的简化流程,形成初步概念。原创 2017-09-29 13:49:24 · 247 阅读 · 0 评论 -
nginx目录分析
src/core存放着主干部分、基础数据结构和基础设施的源码,main函数在src/core/nginx.c中,这是分析源码的一个很好的起点。src/event存放着事件驱动模型和相关模块的源码。src/http存放着http server和相关模块的源码。src/mail存放着邮件代理和相关模块的源码。src/misc存放着C++兼容性测试和google perftools模块的源码。src/o...原创 2018-04-19 10:48:35 · 237 阅读 · 0 评论 -
ngx_hash.c分析
先分析流程,正常的话都是先添加,然后查找,按照这个流程阅读代码:以ngx_http_module为例,ngx_http_block为其回调函数,-》ngx_http_optimize_servers-》ngx_http_server_names-》ngx_hash_add_key:ngx_hash_add_key:rc = ngx_hash_add_key(&ha, &name[n...原创 2018-04-19 10:50:25 · 183 阅读 · 0 评论 -
ngx_times.c
ngx_time_init时间管理模块初始化,见nginx.c中的main函数,即属于启动项之一。时间管理对以下项提供时间: 1. 错误日志 2. http处理 3. http日志 4. http日志iso 5. syslog static ngx_time_t cached_time[NGX_TIME_SLOTS];该全局变量为nginx维护的时间缓冲。主要通过缓冲减少并发间的相互...原创 2018-04-19 10:57:17 · 395 阅读 · 0 评论 -
ngx_queue.c
双向循环列表,列表的一系列操作见ngx_queue.h,简单的指针操作,实现插入、删除、获取头、获取尾部等。简单存放数据,不负责内存管理。ngx_queue.c中主要实现了两个接口ngx_queue_middle实现原理:获取尾部指针,两个指针同时遍历,一个单步,一个双步,双步指针到达尾部,即返回单步走指针。ngx_queue_sort实现原理:从头节点遍历链表,先删除该节点,然后从后往前寻找比其...原创 2018-04-19 11:00:08 · 246 阅读 · 0 评论 -
epoll 源码分析
cat /proc/sys/fs/epoll/max_user_watches 每个用户支持注册事件的最大事件数。struct sysinfo si;si_meminfo(&si);/* * Allows top 4% of lomem to be allocated for epoll watches (per user). */max_user_watches = (((si.tot...原创 2018-04-19 11:02:05 · 208 阅读 · 1 评论 -
控制nginx
可通过发送信号给 nginx 进行控制。nginx 主进程的 PID 默认被写入 /usr/local/nginx/logs/nginx.pid。pid 文件的路径被可在配置时修改,使用 pid 指令指定其他路径。nginx 主进程支持如下信号:TERM, INT 快速关闭 nginxQUIT 优雅地关闭 nginxHUP 修改配置,keeping up ...翻译 2018-04-19 11:03:46 · 190 阅读 · 0 评论