Nginx教程

nginx工作模式

本文主要是介绍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

这篇关于nginx工作模式的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!