Nginx原理最全详解(图文全面总结)

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

Nginx

Nginx 是一种高性能的开源 Web 服务器,常被用作:反向代理、负载均衡器、和 HTTP 缓存…等等工具。

Nginx原理最全详解(图文全面总结)-mikechen

凭借其事件驱动的架构和模块化设计,Nginx 具备高并发、高性能、低资源占用等特点,广泛应用于现代 Web 系统中。

Nginx原理

Nginx采用多进程模型,这是其高性能的关键之一。

Nginx,由一个主进程(Master Process)、和多个工作进程(Worker Process)组成。

如下图所示:

Nginx原理最全详解(图文全面总结)-mikechen

主进程(Master Process)

主进程(Master Process),负责:管理工作进程,包括:读取配置文件、启动和停止工作进程、处理信号…等。

包含:

  • 加载和验证配置: 启动时读取并验证nginx.conf配置文件,确保配置正确;
  • 管理工作进程: 创建、启动、停止和重启工作进程…等等;
  • 接收和分发信号: 接收来自操作系统的信号(如重启、停止),并将这些信号传递给工作进程。
  • 监控工作进程: 监控工作进程的运行状态,如果某个工作进程异常退出,主进程会负责启动新的工作进程,保证服务的稳定性。

 

工作进程(Worker Process)

工作进程(Worker Processes),负责实际处理客户端请求,每个工作进程独立运行,可以并行处理多个连接。

主要功能,如下:

  • 处理客户端请求: 负责实际处理客户端的连接、和请求;
  • 独立运行: 每个工作进程都是独立的,互不干扰,一个工作进程的崩溃不会影响其他工作进程的运行;
  • 采用异步非阻塞方式: 这是Nginx高并发的关键,一个工作进程可以同时处理成千上万个连接。

 

Nginx工作流程

Nginx工作流程,如下图所示:

Nginx原理最全详解(图文全面总结)-mikechen

首先,接收请求,Nginx接收客户端的请求;

然后,解析请求,Nginx解析请求头和请求体;

然后,查找配置,Nginx根据请求的URL查找相应的配置;

然后,处理请求,Nginx根据配置处理请求,包括代理请求、缓存请求和静态文件服务;

然后,发送响应:Nginx发送响应给客户端;

最后,日志记录,Nginx记录请求和响应的日志。

mikechen睿哥

mikechen睿哥,十余年BAT架构经验,资深技术专家,就职于阿里、淘宝、百度等一线互联网大厂。

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

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

评论交流
    说说你的看法