上一节我们讲到了事件驱动的模块,它把我们引入epoll模块,今天我们主要学习下nginx如何使用epoll完成时间驱动,实现高并发;这里不详细讲解epoll原理,如果有机会再做一次单独的epoll的学习。
本文来自于:http://blog.csdn.net/lengzijian
回忆一下上一节的内容,在我们讲到ngx_process_events_and_timers时,在源码最后提到了ngx_process_events,这里是把我们引入epoll的入口:
1.先来看下ngx_process_events的宏定义:
2.继续查找ngx_event_actions,我们找到如下结构体:
a.我们去源代码中搜索下关键字ngx_event_actions:
前面三行表示:所有event模块对象中的actions就是ngx_event_actions_t对象,而ngx_event_action在第四行定义为全局变量,用于同一接口,下面又存在一个疑问,event模块到底做了些什么?
b.先找到ngx_event_module_t的结构体:
我们找一个例子来详细讲解下
这里有注释就不详细讲解了。
ngx_process_events这个函数就是我们要找的,要了好大一圈,ngx_process_events实际上就是调用这个函数,此处本人纠结,为什么作者不加点注释呢。
3.下面正式观察下ngx_epoll_init函数:
4.下面观察下主要的函数ngx_epoll_process_events:
分享到:
相关推荐
Nginx 源码分析笔记 自己的源码分析笔记,未完。
自己的nginx源码学习资料,包含《Nginx模块开发指南》和《深入理解Nginx》等,方便初学者了解nginx设计思想以及源码
nginx源码nginx源码nginx源码nginx源码nginx源码nginx源码nginx源码nginx源码nginx源码nginx源码
nginx学习笔记.zip
nginx源码说明;其他下载即可,没下载分了,大家互相帮忙。其他情况大概就这些吧,其他也没什么好说的了,看文档即可
nginx笔记nginx笔记nginx笔记nginx笔记nginx笔记nginx笔记nginx笔记nginx笔记
收集的 nginx 源码 解析 ,非常全 architecture.png Emiller的Nginx模块开发指南.docx Nginx(en).pdf nginx@taobao.pdf nginx_internals.pdf nginx核心讲解(0.2).doc nginx核心讲解(0.4).doc Nginx模块开发指南中文...
Nginx学习笔记
比较详细的分析了nginx关键源码,包括配置文件解析,进程模式,nginx epoll机制,http反向代理机制,http头读取
Nginx模块源码 nginx-notice-2 一只小麻雀。 通过Post的方式取文件 Nginx 0.7 可编译。
带有详细注释的nginx源码,能帮你有效地阅读和学习nginx源码
这是我自学nginx的学习笔记,上传只是为了更好的督促自己学习,如果你也有同感,加入一起学习吧。
压缩包内有四个版本的nginx,可根据自己的需求安装相应的软件包。使用方法:下载资源包--->将需要的版本导入到linux主机中--->tar解压得到nginx源码包--->源码编译安装
Windows下编译Nginx并添加模块,在项目中使用过的
nginx1.12.2源码、pcre-8.4.3源码、zlib-1.2.11源码包、openssl-1.0.2r源码包、echo-nginx-module-master模块源码、headers-more-nginx-module-master源码包、ngx_http_substitutions_filter_module源码包;...
本人在银行工作,基于生产环境搭建方法编写的Nginx源码安装手册,生产环境可参考此手册。
Nginx教程
nginx源码分析nginx源码分析nginx源码分析nginx源码分析nginx源码分析nginx源码分析nginx源码分析nginx源码分析nginx源码分析nginx源码分析
Nginx模块开发OpenResty简单使用笔记整理 ### Nginx简介 Nginx是当前最流行的HTTP Server之一,根据W3Techs的统计,目前世界排名(根据Alexa)前100万的网站中。与Apache相比。 同时,大量的第三方扩展模块也令...
vc6.0实现编译nginx源码。对于理解nginx模块很有用