1、Nginx是什么
nginx代码
nginx代理服务器
2、Nginx之event、epoll及红黑树
a. nginx 源码学习笔记(二十)—— event 模块(一) ——初始化 http://blog.csdn.net/lengzijian/article/details/7598996
b. nginx 源码学习笔记(二十一)—— event 模块(二) ——事件驱动核心ngx_process_events_and_timers http://blog.csdn.net/lengzijian/article/details/7601730
c.nginx 源码学习笔记(二十二)—— event 模块(三) ——epoll模块 http://blog.csdn.net/lengzijian/article/details/7608365
讲述的是nginx如何使用epoll完成时间驱动,实现高并发
d. nginx 源码学习笔记(二十三)—— event 模块(四) ——timer红黑树 http://blog.csdn.net/lengzijian/article/details/7609388
nginx中,当前所有可能被触发的定时器被保存在红黑树这种数据结构中,通过红黑树,你可以很快的得到距离当前最快发生的定时器时间的时间差,将这个时间差作为select/poll/epoll等函数的参数,也就是说最多等待这么长时间就返回。得到函数调用总共花费了多少时间,根据这个时间取出红黑树的根节点比较查看是否应该触发该定时器时间,如果可以,则将定时器从红黑树中删除,然后继续查看新的成为树根的定时器的节点,这个过程一直进行下去,知道没有定时器满足被触发条件,也就是还没有被触发的事件。
nginx中,新接收了一个连接,就会保存这个连接上来的时间,并且以这个时间来加入红黑树定时器。