当前位置:首页 > 技术文章 > 正文内容

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

arlanguage3个月前 (01-20)技术文章27

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

本文作者:陈睿|mikechen

文章来源:mikechen.cc

Nginx

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

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

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

Nginx架构

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

Nginx架构,如下图所示:

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

主进程(Master Process)

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

包含:

管理角色

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

信号处理

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

配置管理

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

工作进程(Worker Process)

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

包含:

请求处理

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

并发能力

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

资源隔离

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

Nginx原理

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

大致分为,如下步骤:

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

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

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

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

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

本文作者:陈睿|mikechen

文章来源:mikechen.cc

扫描二维码推送至手机访问。

版权声明:本文由AR编程网发布,如需转载请注明出处。

本文链接:http://www.arlanguage.com/post/963.html

标签: 腾讯 nginx
分享给朋友:

“Nginx架构最全详解(图文全面总结)” 的相关文章

nginx知识梳理及配置详解

nginx安装#nginx安装 yum -y install gcc pcre-devel openssl-devel #依赖包 useradd -s /sbin/nologin nginx ./configure --prefix=/usr/local/nginx #...

如何让Nginx更安全? nginx怎么保证高可用

网络安全的重要性不言而喻。那么小伙伴们有没有在日常使用 Nginx 的时候,特意去关注下它的安全配置呢?今天松哥和小伙伴们讨论一下如何安全的使用 Nginx,给大伙几个建议。一 使用最新版建议使用最新版的 Nginx,对于已经部署的 Nginx,要及时更新到最新版本,以确保所有已知的安全漏洞都已修补...

NGINX最常用的指令(备用查询)

服务管理sudo systemctl status nginx # nginx当前状态 sudo systemctl reload nginx # 重新加载 nginx sudo systemctl restart nginx # 重启nginx sudo nginx -t # 检查语法 ng...

01《Nginx 入门教程》Nginx 是什么?

关于 Nginx,百度百科的介绍如下:**Nginx (engine x)是一个开源、高性能的 HTTP 和反向代理 Web 服务器,同时也提供了 IMAP/POP3/SMTP 服务”。**首先,对 Web 服务器做一个简要说明:Web 服务器一般指网站服务器,是指驻留于因特网上某种类型计算机的程序...

Nginx核心指令if和set入门

下述介绍的指令均在nginx.conf配置文件中设置,该配置文件的整体结构见:Nginx中nginx.conf配置文件详解1.if指令(1)含义nginx用于条件判断(2)作用域在server、location块中设置,并起作用(3)设置方法1)运算符:=、!=,用来与字符串和变量进行比较判断是否相...

Nuxt.js从0到1之入门教程

题外话:近来想把网站做下更新,从框架到内容的更新,但又不想放弃SEO的优势,日常工作用到vue.js在SEO方面劣势较多,果断选择了Nuxt.js,苦于国内文章抄袭的非常严重 如某n 某书,最终在稀土找到一篇像样的文章,以头条为平台记录网站改版全过程。此文章建议在PC端查看,涉及到代码部分,移动端查...