一、Nginx 简介与核心概念

1.1 什么是 Nginx

Nginx(发音为 "engine X")是由俄罗斯开发者 Igor Sysoev 设计的高性能 HTTP 服务器、反向代理服务器、负载均衡器和 IMAP/POP3/SMTP 代理服务器。其核心设计理念是 "事件驱动、异步非阻塞 I/O 模型",旨在以极低的资源消耗支撑超高并发连接。

1.2 核心特点

  • 高性能:基于事件驱动和异步非阻塞架构,单机可轻松支撑 10 万 + 并发连接

  • 轻量级:资源占用极低,单核 CPU 即可跑满万级并发

  • 高可靠:模块化设计,支持热部署,7×24 小时稳定运行

  • 扩展性强:丰富的第三方模块,可满足各种业务需求

  • 跨平台:支持 Linux、Windows、macOS 等多种操作系统

1.3 核心定位

Nginx 本质上是一个 "请求分发与处理中枢",主要承担以下角色:

  1. Web 服务器:直接处理静态资源(HTML、CSS、JS、图片等)的请求

  2. 反向代理:接收客户端请求后转发到后端业务服务器,隐藏后端服务细节

  3. 负载均衡器:将海量客户端请求均匀分发到多台后端服务器

  4. 缓存服务器:缓存静态资源和动态内容,提升响应速度

  5. API 网关:统一管理 API 接口,提供认证、限流、监控等功能

二、Nginx 架构与工作原理

2.1 进程架构

Nginx 采用多进程架构,主要包括:

  • Master 进程:负责管理配置文件、启动 Worker 进程、处理信号等

  • Worker 进程:实际处理客户端请求,数量通常等于 CPU 核心数

  • Cache 进程:可选进程,用于处理缓存相关操作

2.2 事件驱动模型

Nginx 采用异步非阻塞 I/O 模型,通过 epoll(Linux)、kqueue(BSD)等系统调用实现高效的事件处理:

  1. 事件监听:Worker 进程监听端口上的连接事件

  2. 事件处理:当有新连接时,Worker 进程接收连接并处理请求

  3. 非阻塞 I/O:在等待 I/O 操作完成时,Worker 进程可以处理其他请求

  4. 事件回调:I/O 操作完成后,Worker 进程继续处理请求

2.3 请求处理流程


客户端请求 → Nginx Master进程 → Worker进程 → 处理请求 → 返回响应 ↓ 连接建立 → 读取请求 → 处理请求 → 生成响应 → 发送响应 → 连接关闭

三、Nginx 核心功能详解

3.1 静态资源服务

Nginx 最基础也是最擅长的功能就是静态资源服务:

  • 高效文件传输:内置文件描述符缓存,减少文件打开 / 关闭开销

  • 自动索引:支持目录浏览和索引文件配置

  • 范围请求:支持 FLV/MP4 视频流式传输,实现断点续传

  • MIME 类型支持:自动识别文件类型并设置正确的 Content-Type

3.2 虚拟主机

Nginx 支持基于域名和 IP 的虚拟主机,单台 Nginx 可同时托管多个独立网站:

  • 基于域名的虚拟主机:通过 server_name 区分不同网站

  • 基于 IP 的虚拟主机:通过监听不同 IP 地址区分网站

  • 基于端口的虚拟主机:通过监听不同端口区分网站

3.3 反向代理

反向代理是 Nginx 最核心的功能之一:

  • 请求转发:将客户端请求转发到后端服务器

  • 负载均衡:将请求均匀分发到多台后端服务器

  • 安全隔离:隐藏后端服务器细节,提高安全性

  • 协议转换:支持 HTTP、HTTPS、FastCGI、uwsgi 等多种协议

3.4 负载均衡

Nginx 提供多种负载均衡策略:

  • 轮询(Round Robin):按顺序依次转发请求

  • 加权轮询:根据服务器性能分配不同权重

  • IP 哈希(ip_hash):同一客户端 IP 固定访问同一服务器

  • 最少连接(least_conn):将请求分配给连接数最少的服务器

  • URL 哈希(url_hash):同一 URL 固定访问同一服务器

3.5 缓存功能

Nginx 提供强大的缓存能力:

  • 静态缓存:缓存静态文件,减少磁盘 I/O

  • 代理缓存:缓存后端服务器响应,减少后端压力

  • 浏览器缓存:通过设置 Expires 和 Cache-Control 头控制浏览器缓存

  • CDN 缓存:可作为 CDN 节点缓存内容

3.6 安全功能

Nginx 提供多种安全防护机制:

  • SSL/TLS 支持:支持 HTTPS 加密传输

  • 访问控制:基于 IP、用户、URL 等进行访问控制

  • 限流功能:限制请求频率和并发连接数

  • WAF 集成:可集成 ModSecurity 等 Web 应用防火墙

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐