nginx基础架构

一, 基础架构

1, ngx_cycle_t支持的方法
方法名参数含义执行意义
ngx_cycle_t *ngx_init_cycle_(ngx_cycle_t *old_cycle)old_cycle表示临时的ngxcycle_t指针,一般仅用来传递ngx_cycle_t结构体中的配置文件路径等参数返回初始化成功的完整的ngx_cycle_t结构体, 该函数将会负责初始化ngx_cycle_t中的数据结构, 解析配置文件加载所有模块, 打开监听端口,初始化进程间通信方式等工作. 如果失败, 则返回NULL空指针
ngx_int_t ngx_process_options(ngx_cycle_t *cycle)cycle通常是刚刚分配的ngx_cycle_t结构体指针, 仅用于传递配置文件路径信息用运行nginx时可能携带的目录参数来初始化cycle, 包含初始化运行目录, 配置目录, 并生成完整的nginx.conf配置文件路径
ngx_int_t ngx_add_inherited_sockets(ngx_cycle_t *cycle)cycle是当前进程的ngx_cycle_t结构体指针在执行不重启服务升起nginx的操作时, 老的nginx进程会通过环境变量"NGINX"来传递需要打开的监听端口, 新的nginx进程会通过ngx_add_inherited_sockets方法来使用已经打开的TCP监听端口
ngx_int_t ngx_open_listening_sockets(ngx_cycle_t *cycle)cycle是当前进程的ngx_cycle_t结构体指针监听, 绑定cycle中listening动态数组指定的相应端口
void ngx_configure_listening_sockets(ngx_cycle_t * cycle)cycle是当前进程的ngx_cycle_t结构体指针根据nginx.conf中的配置项设置已经监听的句柄
void ngx_close_listening_sockets(ngx_cycle_t *cycle)cycle是当前进程的ngx_cycle_t结构体指针关闭cycle中listening动态数组已经监听的句柄
void ngx_master_process_cycle(ngx_cycle_t *cycle)cycle是当前进程的ngx_cycle_t结构体指针进入master进程的工作循环
void ngx_single_process_cycle(ngx_cycle_t *cycle)cycle是当前进程的ngx_cycle_t结构体指针进入单进程模式(非master, worker进程工作模式)的工作循环
void ngx_start_worker_processes(ngx_cycle_t * cycle, ngx_int_t n, ngx_int_t type)cycle是当前进程的ngx_cycle_t结构体指针, n是启动子进程的个数, type是启动方式, 它的取值范围有以下5中: 1. NGX_PROCESS_PRESPAWN; 2. NGX_PROCESS_NORESPAWN; 3. NGX_PROCESS_JUST_SPAWN; 4. NGX_PROCESS_JUST_RESPAWN 5. NGX_PROCESS_DETACHED; type 的值将影响ngx_process_t结构体的respawn, detached, just_spawn标志位的值启动n个worker子进程, 并始终好每一个子进程与master父进程之间使用socketpair系统调用建立起来的socket句柄通信机制
void ngx_start_cache_manager_processes(ngx_cycle_t *cycle, ngx_uint_t respawn)cycle是当前进程的ngx_cycle_t结构体指针, respawn是启动子进程的方式, 它与ngx_start_worker_processes方法中的type参数意义完全相同根据是否使用文件缓存模块, 也就是cycle中存储路径的动态数组中是否有路径的manage标志打开,来决定是否启动cache manager 子进程, 同样根据loader标志决定是否启动cache loader子进程
void ngx_pass_open_channel(ngx_cycle_t * cycle, ngx_channel_t *ch)cycle是当前进程的ngx_cycle_t结构体指针, ch是将要向子进程发送的信息向所有已经打开的channel(通过socketpair生成的句柄进行通信)发送ch信息
void ngx_signal_worker_processes(ngx_cycle_t * cycle, int signo)cycle是当前进程的ngx_cycle_t结构体指针, signo是信号处理worker进程接收到信号
void ngx_uint_t ngx_reap_children(ngx_cycle_t *cycle)cycle是当前进程的ngx_cycle_t结构体指针, signo是信号检查master进程的所有子进程, 根据每一个子进程的状态(ngx_process_t 结构体中的标志位)判断是否要启动子进程, 更改pid文件等
void ngx_master_process_exit(ngx_cycle_t * cycle)cycle是当前进程的ngx_cycle_t结构体指针退出master进程工作的循环
void ngx_worker_process_init(ngx_cycle_t *cycle, void *data)cycle是当前进程的ngx_cycle_t结构体指针, 这里还未开始使用data参数, 所以data一般为NULL进入worker进程工作的循环
void ngx_worker_process_init(ngx_cycle_t *cycle, ngx_uint_t priority)cycle是当前进程的ngx_cycle_t结构体指针, priority是worker进程的系统优先级进入worker进程工作循环之前的初始化工作
void ngx_worker_process_exit(ngx_cycle_t *cycle)cycle是当前进程的ngx_cycle_t结构体指针退出worker进程工作的循环
void ngx_cache_manager_process_cycle(ngx_cycle_t *cycle, void *data)cycle是当前进程的ngx_cycle_t结构体指针, data是传入的ngx_cache_manager_ctx_t结构体指针执行缓存管理工作的循环方法. 这与文件缓存模块密切相关
void ngx_process_events_and_timers(ngx_cycle_t *cycle)cycle是当前进程的ngx_cycle_t结构体指针使用事件模块处理截止到现在已经收集到的事件

个人博客地址:https://chensongpoixs.github.io/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值