Nginx 特性、配置与实战部署
一、Nginx 概述
Nginx 是一款轻量级的 Web 服务器、反向代理服务器 及 电子邮件(IMAP/POP3)代理服务器,以 内存占用少、并发能力强 著称。在中国大陆,百度、京东、新浪、网易、腾讯、淘宝等头部企业均采用 Nginx 作为核心 Web 服务组件。
二、Nginx 核心特性与优点
(一)核心特性
- 高并发支撑:官方测试可支撑 5 万并发连接,生产环境中常规可达 2-3 万并发,远超传统 Apache 服务器。
- 高效事件模型:基于 epoll(Linux)、kqueue(BSD)等高效事件驱动模型,资源利用率低。
- 多角色支持:可同时作为 Web 服务器、反向代理服务器、负载均衡服务器,且能直接支持 PHP-FPM、uWSGI 等动态服务。
- 高性能设计:采用 C 语言编写,系统资源开销小、CPU 效率高,无 Perlbal 等工具的性能瓶颈。
(二)核心优点
| 优点分类 |
具体说明 |
| 性能优势 |
- 内存消耗少:3 万并发下,10 个 Nginx 进程仅占用约 150M 内存;- 热部署支持:无需停机即可重载配置文件,保障服务连续性。 |
| 功能优势 |
- 内置健康检查:后端服务器宕机时自动剔除,不影响前端访问;- GZIP 压缩:支持静态资源压缩,节省带宽;- URL 重写:可根据域名、路径分发请求到不同后端;- 模块化设计:核心模块与第三方模块可灵活组合,支持动态编译。 |
| 成本与稳定性 |
- 开源免费:相比 F5 BIG-IP、NetScaler 等硬件负载均衡设备,大幅降低成本;- 稳定性高:作为反向代理时宕机概率极低,适合生产环境长期运行。 |
三、Nginx 功能体系
(一)基本功能
- 静态资源服务:直接处理 HTML、CSS、JS、图片等静态资源,支持缓存打开的文件描述符,提升访问速度。
- 反向代理:支持 HTTP、SMTP、POP3 协议的反向代理,可隐藏后端服务器 IP,提升安全性。
- 负载均衡:通过 upstream 模块实现后端服务器集群的负载分发,支持轮询、IP 哈希、权重等多种算法。
- 动态服务对接:支持 FastCGI(适配 PHP-FPM,用于 LNMP 架构)、uWSGI(适配 Python)等动态服务协议。
- 基础过滤与处理:内置 ZIP 压缩、SSI 解析、图像大小调整等过滤器模块。
- SSL 支持:集成 http_ssl_module,可配置 HTTPS 协议,保障数据传输安全。
(二)扩展功能
- 虚拟主机:支持基于域名(server_name)和 IP 的多虚拟主机,实现一台服务器部署多个站点。
- 连接优化:支持 keepalive 长连接,减少 TCP 握手开销;开启 tcp_nodelay 优化长连接数据传输。
- 访问控制:基于 IP 地址、用户身份(如 Basic Auth)限制访问,保障站点安全。
- 流量控制:支持速率限制(limit_rate)和并发数限制(limit_conn),防止恶意请求压垮服务器。
- 日志定制:支持自定义访问日志格式,可使用日志缓冲区提升存储性能,便于后续日志分析。
四、Nginx 模块分类
Nginx 的功能由模块支撑,模块按来源分为三类:
| 模块类型 |
包含模块示例 |
功能说明 |
| 核心模块 |
HTTP 模块、EVENT 模块、MAIL 模块 |
Nginx 运行的基础,默认编译进程序,负责协议解析、事件驱动等核心逻辑。 |
| 基本模块 |
HTTP Access 模块、HTTP FastCGI 模块、HTTP Proxy 模块、HTTP Rewrite 模块 |
扩展核心功能,如访问控制、FastCGI 对接、反向代理、URL 重写等。 |
| 第三方模块 |
HTTP Upstream 模块、Request Hash 模块、Notice 模块、HTTP Access Key 模块 |
由社区或用户开发,满足特定场景需求(如自定义负载均衡算法、访问密钥验证)。 |
五、Nginx 工作原理
(一)进程架构
Nginx 采用 Master-Worker 多进程模型,启动后包含两类进程:
- Master 进程:仅 1 个,不处理客户端请求,负责管理 Worker 进程:
-
- 读取并验证配置文件;
-
- fork(创建)Worker 进程;
-
- 接收信号(如重载配置、停止服务)并分发给 Worker 进程。
2.Worker 进程:多个(数量由 worke

最低0.47元/天 解锁文章
2698

被折叠的 条评论
为什么被折叠?



