Nginx是一款高性能的 HTTP 和反向代理服务器
Nginx 之所以能成为主流选择,主要得益于以下几个关键特性:
- 高性能与高并发
Nginx 采用事件驱动和异步非阻塞的 I/O 模型,这与 Apache 传统的多进程/线程模型截然不同。这使得单个 Nginx 工作进程就能高效地处理成千上万个并发连接,极大地降低了内存消耗和 CPU 负载。 - 高可靠性
Nginx 采用 Master-Worker 多进程架构:- Master 进程:负责读取配置文件、管理 Worker 进程的生命周期(启动、停止、重载配置),但不直接处理用户请求。
- Worker 进程:实际处理网络请求的进程,数量通常与 CPU 核心数相同。
这种设计实现了管理与业务的解耦。如果某个 Worker 进程崩溃,Master 进程会立即启动一个新的进程来替代,确保服务稳定运行。
- 热部署与平滑升级
Nginx 支持在不中断服务的情况下重新加载配置、升级版本或切割日志文件,这对于需要 7x24 小时不间断运行的生产环境至关重要。 - 模块化设计
Nginx 的功能通过模块实现,核心功能(如 HTTP、事件处理)与各种功能模块(如反向代理、Gzip 压缩、SSL 支持)相互独立,扩展性极强。
Nginx 的功能非常强大,最常见的应用场景包括:
- 静态资源服务器
Nginx 处理静态文件(如 HTML、CSS、JavaScript、图片)的性能远超其他 Web 服务器。它利用sendfile等零拷贝技术,可以直接在内核空间完成文件传输,效率极高。 - 反向代理与负载均衡
这是 Nginx 最核心的企业级功能。它作为客户端和后端服务器集群之间的“中间人”。- 隐藏后端:客户端只与 Nginx 通信,无法得知后端服务器的真实 IP,提升了安全性。
- 流量分发:Nginx 可以根据预设的算法(如轮询、IP 哈希、最少连接数)将请求均匀地分发到多个后端服务器上,实现负载均衡,提高系统的整体处理能力和可用性。
- API 网关
在微服务架构中,Nginx 常被用作 API 网关,统一处理所有客户端的请求,并提供路由转发、身份认证、限流、熔断等高级功能。 - HTTPS/SSL 终止
Nginx 可以统一处理耗资源的 HTTPS 加解密工作。客户端与 Nginx 之间使用 HTTPS 通信,而 Nginx 与后端服务之间则可以使用高效的 HTTP 通信,从而减轻后端服务的压力。
