Nginx架构最全详解(图文全面总结)

摘要:Nginx是大型架构的必备中间件,也是高并发架构的关键点,下面我重点详解Nginx架构@mikechen

Nginx是大型架构的必备中间件,也是高并发架构的关键点,下面我重点详解Nginx架构@mikechen

本文作者:陈睿|mikechen

文章来源:mikechen.cc

Nginx是一款高性能的HTTP、和反向代理服务器,它以其高并发处理能力、低内存消耗、稳定性...等特点,成为了目前最流行的Web服务器。

Nginx可以作为Web服务器直接提供静态内容,Nginx也可以作为反向代理服务器,将客户端的请求转发到后端的多个服务器上。

Nginx可以实现负载均衡,将请求分发到不同的后端服务器上,从而极大的提升性能。

Nginx架构

Nginx架构,如下图所示:

主要包括两个核心组件:主进程(Master Process)、和工作进程(Worker Process)。

主进程

主进程是Nginx的核心组件,负责:初始化Nginx,加载配置文件,创建worker进程...等。

它的主要功能包括:

启动、和管理 Worker 进程;监听配置文件...变更,并在不重启的情况下重新加载配置;处理信号,比如:停止、重启、优雅重启...等;以及,管理 Worker 进程的生命周期。

Master 进程,并不直接处理客户端的请求,它只是用于控制和管理 Worker 进程。

工作进程

worker进程:是Nginx的工作进程,负责:处理客户端的请求。

每个Worker进程都是一个完整的Nginx服务器,多个Worker进程之间是对等的。

每个 Worker 进程,可以处理成千上万的并发连接,而且 Nginx 的事件模型可以根据系统负载自动选择合适的事件通知机制。

比如: epoll、kqueue ...等,如下图所示:

在Nginx中,epoll被广泛用于处理大量的网络连接,使其能够高效地处理高并发请求。

使用 epoll 后,Nginx 能够非常高效地处理成千上万的并发连接。

它通过 非阻塞 I/O 、和 事件驱动 模式,避免了每个连接都占用一个线程或进程,而是通过少量的 Worker 进程处理大量的请求。

Nginx工作流程

大致工作流程,如下:

首先,Master进程分发请求。

Master进程,将请求分发给一个Worker进程处理;

其次,Worker进程处理请求。

解析请求:Worker进程解析HTTP请求,获取请求的方法、URL、头部信息等。

处理请求:根据配置,对请求进行相应的处理,如静态文件处理、反向代理、负载均衡等。

最后,生成响应。

Worker进程生成HTTP响应,并发送给客户端。

本文作者:陈睿|mikechen

文章来源:mikechen.cc

来源:小贾论科技

相关推荐