一.nginx启动的流程
1.解析命令行,处理各种参数,获得配置文件路径
2.
3.调用每个核心模块的create_conf方法,每个核心模块都会构造一个存储配置项的指针数组,
4.解析配置文件
5.调用所有核心模块的init_conf方法
6.
二.惊群事件及解决方法
定义:master进程会fork多个worker子进程,这些worker子进程就会同时监听同一个web端口。这时当有一个用户向服务器发起连接时,会激活所有休眠的子进程,此时只有最先
开始执行accept的子进程可以成功建立新连接,其他子进程都将accept失败。这些accept失败的子进程被内核唤醒是不必要的,被唤醒之后的执行也是多余的。所以他们
占用了不必要的系统资源,引发了不必要的上下文切换,增加了系统开销
nginx的解决方法:nginx规定同一时刻只能有唯一一个worker子进程监听web端口,这时新连接只会唤醒唯一的正在监听该端口的子进程
如何实现: