Nginx架构浅析

Nginx架构浅析

最近项目中使用了基于Nginx的OpenResty的框架,于是有了想学习了解Nginx相关内容的想法,现将一些理解撰写成文,和大家讨论一下。

1.Nginx基础架构

nginx启动后以daemon形式在后台运行,后台进程包含一个master进程和多个worker进程。如下所示:nginx1-master与worker
nginx是由一个master管理进程,多个worker进程处理工作的多进程模型。基础架构设计,如下所示:
nginx2-基础架构设计
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, 
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值