摘要:nginx是个多进程web容器,不同的配置下它的启动方式也是不同的,这里我只说说最典型的启动方式。 它有1个master进程,和多个worker进程(最优配置的数量与CPU核数相关)。那么,首先我们要找到main函数,它在src/core/nginx.c文件中。谈到源码了,这时我们先简单看下源码的目
阅读全文
摘要:请求处理 函数ngx_http_process_line()处理的数据就是从客户端发送过来的http请求头中的Request_Line。分为三步 1.读取Request_line数据,2.解析Request_line 3.存储解析结果并设置相关值 第一步:读取Request_Line数据。通过函数n
阅读全文
摘要:epoll的最大好处在于他不会随着被监控描述符的数目的增长而导致效率极致下降。 select是遍历扫描来判断每个描述符是否有事件发生,当监控的描述付越多时,时间消耗就越多,并且由于系统的限制select最多可以监控1024个描述符。 epoll监控的描述符的数目很大,并且epoll对描述符的响应是触
阅读全文
摘要:事件管理机制中的负载均衡处理在配置Nginx执行时,工作进程会有很多,由于各个工作进程相互独立接受客户端请求,处理,响应,而会出现的有的工作进程要处理很多请求等待处理,而有的工作进程则处于空闲状态而出现的负载不均衡的情况。 还有一种是在多个服务器间的负载均衡。 事件管理机制中的负载均衡采用轮询的方法
阅读全文
摘要:作者:邹祁峰 邮箱:Qifeng.zou.job@hotmail.com 博客:http://blog.csdn.net/qifengzou 日期:2013.09.15 23:19 转载请注明来自"祁峰"的CSDN博客 1 引言 众所周知,操作系统使用伙伴系统管理内存,不仅会造成大量的内存碎片,同时
阅读全文
摘要:惊群:是指在多线程/多进程中,当有一个客户端发生链接请求时,多线程/多进程都被唤醒,然后只仅仅有一个进程/线程处理成功,其他进程/线程还是回到睡眠状态,这种现象就是惊群。 惊群是经常发生现在server端,父进程fork很多子进程,当有客户端有链接请求时,所有子进程都被唤醒,可是只有一个子进程处理请
阅读全文