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

Nginx是大型互联网架构的必备中间件,也是大厂经常涉及的关键点,下面我重点详解Nginx架构@mikechen

Nginx

Nginx(发音同 engine x),是一个高性能的HTTP、和反向代理服务器。

Nginx,以其高性能、高可靠性、低内存消耗/和易于配置而闻名。

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

Nginx,广泛应用于:Web服务器、负载均衡、反向代理、缓存服务器…等场景。

Nginx架构

Nginx 的架构,采用经典的多进程模型,核心是一个 主进程(Master Process) 、和多个 工作进程(Worker Process) 的协作运行。

Nginx架构,如下图所示:

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

Nginx这种设计,充分发挥了硬件多核性能,确保了高性能、高并发和高可靠性。

主进程(Master Process)

主进程的职责是:管理、和控制整个 Nginx 服务的生命周期。

包含:

管理角色

主进程负责管理工作进程,包括:读取和解析配置文件、启动和监控工作进程;

信号处理

主进程接收系统信号(如:重启、停止…等),并根据信号执行相应操作,例如重新加载配置或优雅地关闭工作进程。

配置管理

在Nginx启动时,主进程会读取nginx.conf配置文件,并根据其中的设置创建相应数量的工作进程。

工作进程(Worker Process)

工作进程是真正处理客户端请求的核心模块,每个进程独立运行,并由主进程管理。

包含:

请求处理

每个工作进程负责实际处理客户端请求,包括接收连接、解析请求、生成响应等。工作进程是单线程的,这意味着每个工作进程在同一时间只能处理一个请求。

并发能力

尽管每个工作进程是单线程的,但通过事件驱动和非阻塞I/O机制,Nginx能够在一个工作进程中同时处理多个连接,从而实现高并发性能。

资源隔离

各个工作进程之间相互独立,避免了资源竞争和上下文切换带来的性能损失。

 

Nginx原理

以下是 Nginx 接收和处理请求的简要流程:

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

大致分为,如下步骤:

客户端连接:客户端通过 TCP/IP 建立、与 Nginx 的连接。

分配工作进程:主进程监听端口并将连接交给一个工作进程处理。

解析请求:工作进程解析 HTTP 请求头、和路径信息。

匹配 location:根据 URL 路径,匹配到相应的 location 块执行处理逻辑。

转发或返回响应:如果是静态资源,直接返回文件内容,如果是代理请求,则将请求转发给后端服务器。

陈睿mikechen

10年+大厂架构经验,资深技术专家,就职于阿里巴巴、淘宝、百度等一线互联网大厂。

关注作者「mikechen」公众号,获取更多技术干货!

后台回复架构,即可获取《阿里架构师进阶专题全部合集》,后台回复面试即可获取《史上最全阿里Java面试题总结

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧