zoukankan      html  css  js  c++  java
  • nginx工作模式

    一、nginx工作原理

    1.nginx采用异步非阻塞的工作方式

    epoll模型:当I/O事件发生时,epoll就会告诉进程哪个事件由I/O事件产生,然后进程就会处理这个事件。

    nginx配置use epoll后,以异步非阻塞方式工作,能够处理百万计的并发连接。

    2.处理过程:

    每进来一个请求,会由一个工作进程去处理,但不是全程进行处理,处理可能会发生阻塞的情况

    比如:向后端服务器转发请求,那么这个处理的工作进程不会一直等待,它会在发送完请求后,注册一个事件等待后端服务器返回;

    此时,再有新的请求,这个worker就很快按照这个方式处理;

    而一旦后端服务器返回信息,就会触发这个事件,worker就会进行处理,这个请求才会接着往下走;

    通过这种<快速处理并快速释放请求>的方式,达到同样的配置可以处理更大并发的目的。

    二、nginx的工作模式

    1.master-worker模式

    nginx启动成功后,会有一个master进程和至少一个worker进程;

    master进程负责处理系统信号,加载配置、管理worker进程;

    worker进程负责处理具体的业务逻辑;

    对于外部来说,真正提供服务的是worker进程;

    优点:

    • 稳定性高:一个worker进程挂掉后master进程会立即启动一个新的worker进程,保证worker进程数量不变,降低服务中断的概率;
    • 配合linux的cpu的亲和性的匹配中,可以充分利用多核cpu的优势,提升性能;
    • 处理信号、配置重新加载等可以做到尽可能不中断服务;

    2.单进程模式

    nginx只有一个进程,nginx所有工作都由这个进程负责

    优点:可以很方便的利用gdb工具进行调试

    缺点:

    • 不支持平滑升级
    • 任何的信号处理都可能造成服务中断
    • 进程挂掉后,在没有外部监控的情况下,无法重启服务
    • 生产环境中不会使用

    原文地址:https://www.cnblogs.com/ccku/p/13531081.html

  • 相关阅读:
    UVALive 4764 简单dp水题(也可以暴力求解)
    poj 2151 概率DP(水)
    poj 2299 归并排序求逆序数 (可做模板)
    poj2388 更水
    poj1936 假期计划第一水
    poj 3080 kmp求解多个字符串的最长公共字串,(数据小,有点小暴力 16ms)
    UVA315:Network(求割点)
    POJ1236:Network of Schools (思维+Tarjan缩点)
    SPOJ
    HDU4305:Lightning(生成树计数+判断点是否在线段上)
  • 原文地址:https://www.cnblogs.com/shier-dong/p/15330478.html
Copyright © 2011-2022 走看看