![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
nginx 源码学习
文章平均质量分 83
Efren_yang
这个作者很懒,什么都没留下…
展开
-
nginx 源码学习——处理stale event
处理stale event添加到epoll后,worker进程会进入ngx_epoll_process_events函数,epoll_wait等待客户端发起连接请求,触发事件。而在对读写事件进行操作时,都会出现一个instance,这个变量到底是何用意? 我们首先看看man手册关于epoll的注解:*POSSIBLE PITFALLS AND WAYS TO AVOID THEM原创 2015-07-06 18:06:45 · 838 阅读 · 0 评论 -
nginx源码学习——Http连接对应的事件驱动模块
事件驱动函数事件驱动是nginx设计的核心,linux平台下,nginx会优先使用epoll进行事件处理。main—>master_process_cycle—>ngx_start_worker_process—>ngx_worker_process_cycle—>ngx_worker_process_init,ngx_process_events_and_timers。master进程中创建wor原创 2015-07-08 15:09:50 · 679 阅读 · 0 评论 -
nginx源码学习——进程间通信机制
进程架构nginx作为高性能的web服务器,采用的是多进程的方式,由一个master进程和若干个worker进程组成。作为web服务器,nginx的设计从头至尾体现两个字:性能。一般推荐worker进程数和机器的CPU核数相同。这样可以最大限度提升性能。 nginx的进程间通信主要涉及三个方面:master与操作系统的通信,master和worker进程的通信,worker进程与worker进程的原创 2015-07-01 18:03:24 · 862 阅读 · 0 评论 -
nginx源码学习——内存池
主要数据结构struct ngx_pool_s { ngx_pool_data_t d; //内存块的头结构体 size_t max; //内存块可被使用的最大空间 ngx_pool_t *current;//刚刚被分配完的块 ngx_chain_t *chain;原创 2015-07-01 14:40:08 · 589 阅读 · 0 评论 -
Nginx的slab page内存缓存机制
Nginx的内存缓存是通过slab pool来实现的,但是目前Nginx代码没有对http响应进行内存缓存。比如作为反向代理服务器时向后端获取的文件也只是缓存在磁盘里,而内存只是用来做索引。不过Nginx已经提供了内存缓存功能的函数,所以如果在其他地方有需要使用内存缓存的话,也可以通过修改代码来实现(当然,也可以用memory disk来实现内存缓存)。在Nginx的内存缓存机制中,最重要的结构就转载 2015-09-10 15:16:49 · 1467 阅读 · 0 评论