Nginx(1):Nginx介绍

一、概述

Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP 服务。Nginx 是由伊戈尔·赛索耶夫为俄罗斯访问量第二的 Rambler.ru 站点开发的,第一个公开版本 0.1.0 发布于 2004 年 10 月 4 日。  Nginx 是一款轻量级的 Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在 BSD-like 协议下发行。其特点是占有内存少,并发能力强

二、工作模式

       nginx 有两种工作模式:master-worker 模式和单进程模式。在 master-worker 模式下,有一个 master 进程 和至少一个的 worker 进程,单进程模式顾名思义只有一个进程。这两种模式有各自的特点和适用场景。

Master-worker:

      该模式下,nginx 启动成功后,会有一个 master 进程和至少一个的 worker 进程。master 进程负责处理系统信号,加载配置,管理 worker 进程(启动,杀死,监控,发送消息/信号等)。worker 进程负责 处理具体的业务逻辑,也就是说,对外部来说,真正提供服务的是 worker 进程。生产环境下一般使用 这种模式。

单进程模式:

      单进程模式下,nginx 启动后只有一个进程,nginx 的所有工作都由这个进程负责。由于只有一个进程, 因此可以很方便地利用 gdb 等工具进行调试。该模式不支持 nginx 的平滑升级功能,任何的信号处理 都可能造成服务中断,并且由于是单进程,进程挂掉后,在没有外部监控的情况下,无法重启服务。 因此,该模式一般只在开发阶段和调试时使用,生产环境下不会使用。(了解)

 

三、Nginx工作原理

Nginx 配置 use epoll 后,以异步非阻塞方式工作,能够轻松处理百万级的并发连接。 处理过程:每进来一个 request,会有一个 worker 进程去处理。但不是全程的处理,处理到可能发生 阻塞的地方。比如向后端服务器转发 request,并等待请求返回。那么,这个处理的 worker 不会这么 傻等着,他会在发送完请求后,注册一个事件:“如果后端服务器返回了,告诉我一声,我再接着干”。 于是他就休息去了。此时,如果再有新的 request 进来,他就可以很快再按这种方式处理。而一旦后 端服务器返回了,就会触发这个事件,worker 才会来接手,这个 request 才会接着往下走。通过这种 快速处理,快速释放请求的方式,达到同样的配置可以处理更大并发量的目的。

猜你喜欢

转载自blog.csdn.net/qq_40836555/article/details/105870025