我们这里以单进程启动为例nginx.c中的main函数调用ngx_single_process_cycle 这个函数回循环调用 ngx_process_cycle.c中的 代码语言:javascript 复制 for(;;){...ngx_process_events_and_timers...} 事件循环的核心函数是 ngx_process_events_and_timers 。这个函数主要干了四件 事情:抢占 accept mutex,等待并...
nginx的进程启动过程是在ngx_master_process_cycle(src/os/unix/ngx_process_cycle.c)中完成的(单进程是通过ngx_single_process_cycle完成,这里只分析多进程的情况),在ngx_master_process_cycle中,会根据配置文件的worker_processes值创建多个子进程,即一个master进程和多个worker进程。进程之间、进程与外部之间保持通信...
调用ngx_start_worker_processes拉起worker进程。调用ngx_start_cache_manager_processes 依据缓存模块的请款选择是否启动cache manage进程或者cache loader进程, 同一时候将live置为1。ngx_restart置为0 */ if (ngx_restart) { ngx_restart = 0; ngx_start_worker_processes(cycle, ccf->worker_processes, NGX_PRO...
15. if (ngx_process == NGX_PROCESS_SINGLE) //判断nginx运行模式 16.ngx_single_process_cycle //如果是单进程模式,就调用这个函数 17.ngx_master_process_cycle //如果是多进程模式,就会调用这个 18.cycle->modules[i]->init_process //不管是哪种方式,都会调用模块的init_process函数 1. 2. 3. 4. ...
= NGX_PROCESS_SINGLE,即主进程处理,则进入ngx_master_process_cycle函数。同样也是先进行进程的初始化操作,然后调用ngx_start_worker_processes函数启动工作进程,调用ngx_start_cache_manager_processes函数启动cache管理进程,最后同样进入了无限循环for(;;),主进程的主要工作是接收用户命令并发送给各工作进程,同时也对...
调用ngx_create_pidfile() 创建进程记录文件;( 非 NGX_PROCESS_MASTER = 1 进程,不创建该文件 ) 进入进程主循环; 若为NGX_PROCESS_SINGLE=1模式,则调用 ngx_single_process_cycle() 进入进程循环; 否则为 master-worker 模式,调用 ngx_master_process_cycle() 进入进程循环; ...
ngx_start_worker_processes 创建工作进程 ngx_spawn_process fork工作进程 ngx_worker_process_cycle 子进程的回调函数 ngx_worker_process_init 工作进程初始化 进程模型 Nginx 采用多进程单线程模型: 1、nginx在启动后,在unix系统中会以daemon的方式在后台运行,后台进程包含一个master进程和多个worker进程。 2、ngi...
大致是先启动主进程,再通过ngx_start_worker_processes启动子进程。在main函数末尾,有如下代码: if (ngx_process == NGX_PROCESS_SINGLE) { ngx_single_process_cycle(cycle); } else { ngx_master_process_cycle(cycle); } 从本段代码看,如果用户没有配置单进程运行的话,就会进入ngx_master_process_cycle()...
如果不想每次都敲命令,可以在 nginx 安装目录下新添一个启动批处理文件startup.bat,双击即可运行。内容如下: @echo off rem 如果启动前已经启动nginx并记录下pid文件,会kill指定进程 nginx.exe -s stop rem 测试配置文件语法正确性 nginx.exe -t -c conf/nginx.conf ...
Rather than running in a single, monolithic process, NGINX is architected to scale beyond Operating System process limitations by operating as a collection of processes. They include: A "master" process that maintains worker processes, as well as, reads and evaluates configuration files. One or mo...