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

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

本文作者:陈睿|mikechen

文章来源:mikechen.cc

Nginx

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

相关文章

【Nginx】史上最全的Nginx配置详解

Nginx服务器配置中最频繁的部分,代理、缓存和日志定义等绝大多数功能和第三方模块的配置都在这里,http块又包括http全局块和server块。Nginx是非常重要的负载均衡中间件,被广泛应用于大型...

Nginx最全教程(万字图文总结)

大家好,我是mikechen。Nginx是非常重要的中间件,被广泛应用于大型网站架构,各大厂基本都在使用,下面我就全面来详解:Nginx@mikechen本篇已收于mikechen原创超30万字《阿里...

Nginx配置最全详解(万字图文总结)

[TOC]Nginx 也是我们比较常见的“玩具”了,不过有的小伙伴对 Nginx 配置不熟悉,每次使用的时候都要搜索,松哥在本文中给出一些常见的配置案例,小伙伴们可以收藏备用。一 什么是 NginxN...

Nginx/OpenResty详解,Nginx Lua编程,重定向与内部子请求

重定向与内部子请求Nginx的rewrite指令不仅可以在Nginx内部的server、location之间进行跳转,还可以进行外部链接的重定向。通过ngx_lua模块的Lua函数除了能实现Nginx...

Nginx 详细介绍及使用方法

Nginx 详细介绍及使用方法Nginx(发音为 "engine-x")是一个高性能的HTTP和反向代理服务器,也可以用作IMAP/POP3/SMTP代理服务器。它以其高并发连接处理能...