文章目录
Nginx架构浅析
最近项目中使用了基于Nginx的OpenResty的框架,于是有了想学习了解Nginx相关内容的想法,现将一些理解撰写成文,和大家讨论一下。
1.Nginx基础架构
nginx启动后以daemon形式在后台运行,后台进程包含一个master进程和多个worker进程。如下所示:
nginx是由一个master管理进程,多个worker进程处理工作的多进程模型。基础架构设计,如下所示:

master负责管理worker进程,worker进程负责处理网络事件。整个框架被设计为一种依赖事件驱动、异步、非阻塞的模式。
设计优点:
- 1.可以充分利用多核机器,增强并发处理能力。
- 2.多worker间可以实现负载均衡。
- 3.Master监控并统一管理worker行为。在worker异常后,可以主动拉起worker进程,从而提升了系统的可靠性。并且由Master进程控制服务运行中的程序升级、配置项修改等操作,从而增强了整体的动态可扩展与热更的能力。
2.Master进程
2.1核心逻辑
master进程的主逻辑在ngx_master_process_cycle,核心关注源码:
ngx_master_process_cycle(ngx_cycle_t *cycle)
{
...
ngx_start_worker_processes(cycle, ccf->worker_processes,
NGX_PROCESS_RESPAWN);
...
for ( ;; ) {
if (delay) {
...}
ngx_log_debug0(NGX_LOG_DEBUG_EVENT, cycle->log, 0, "sigsuspend");
sigsuspend(&set);
ngx_time_update();
ngx_log_debug1(NGX_LOG_DEBUG_EVENT, cycle->log, 0,
"wake up, sigio %i", sigio);
if (ngx_reap) {
ngx_reap = 0;
ngx_log_debug0(NGX_LOG_DEBUG_EVENT, cycle->log,

最低0.47元/天 解锁文章
3833

被折叠的 条评论
为什么被折叠?



