
| 类型 | Web 服务器 / 反向代理 |
| 首次发布 | 2004 年 |
| 特色 | 高并发 / 反代 / 负载均衡 |
| 官网 | nginx.org |
Nginx(读音类似 engine-x)是一款高性能的开源 Web 服务器软件,同时也被广泛用作反向代理、负载均衡器、HTTP 缓存与邮件代理。它由俄罗斯工程师 Igor Sysoev 开发,最初是为了解决高并发连接下传统服务器性能不足的问题而生。如今,Nginx 已成为互联网上承载流量最多的 Web 服务器之一,从个人博客到全球顶级的大型网站、CDN 与云平台,大量基础设施都以它作为流量的前端入口。它以稳定、高效、配置灵活而闻名,几乎是现代 Web 架构中默认的反向代理与负载均衡选择。
Nginx 的诞生直接针对当时著名的 C10K 问题,即如何让单台服务器同时处理上万个并发连接而不至于资源耗尽或性能崩溃。在那个 Apache 等服务器普遍采用每连接一进程或一线程模型的年代,这是一个严峻的工程挑战。Igor Sysoev 自 2002 年起着手开发,于 2004 年 10 月首次公开发布 Nginx。其后,他于 2011 年成立了商业公司 Nginx Inc.,推出企业增强版 Nginx Plus,提供主动健康检查、会话保持、可视化监控面板、高级负载均衡等付费功能,而核心始终以 BSD 风格的开源许可证免费开放。2019 年,Nginx Inc. 被应用交付领域的巨头 F5 Networks 收购。2024 年,因商标归属与项目治理方向上的分歧,原核心开发者之一 Maxim Dounin 离开并发起了独立的分支项目 Freenginx,延续社区驱动的开发路线。
Nginx 最显著的技术特点,是其事件驱动、异步非阻塞的架构。与传统为每个连接创建一个进程或线程的模型截然不同,Nginx 采用 master-worker 进程模型:master 主进程负责读取与校验配置、管理工作进程、平滑升级等控制任务;而真正处理网络请求的是若干个 worker 工作进程,每个 worker 通常单线程运行一个事件循环,借助操作系统提供的 epoll(Linux)、kqueue(BSD)等高效 I/O 多路复用机制,在一个进程内同时高效地处理成千上万个连接。这种设计让 Nginx 在高负载下表现出内存占用低、性能稳定、几乎没有上下文切换开销的特征,因此尤其擅长应对海量并发的长连接与静态资源请求。当一个连接处于等待状态时,worker 不会被阻塞,而是转去处理其他就绪的连接,从而把硬件资源压榨到极致。
Nginx 的配置文件以声明式、块状(context)的层级结构组织,从外到内依次是 main、events、http、server、location 等上下文。典型情况下,一个 server 块定义一个虚拟主机(对应一个域名或站点),其内部的多个 location 块再按 URI 匹配规则把请求路由到不同的处理逻辑或后端。围绕 Nginx 形成了繁荣的生态:
修改配置后,运维人员通常先用 nginx -t 校验语法是否正确,再执行 nginx -s reload 进行平滑重载,Nginx 会优雅地用新配置启动 worker 并替换旧 worker,整个过程不会中断已建立的连接,这对线上服务的可用性至关重要。
Nginx 主要运行于 Linux 系统上,这是其生产环境的绝对主力,也支持 FreeBSD、macOS 与 Windows,不过 Windows 版本因系统机制限制性能受限,通常仅用于开发测试。在云原生场景中,Ingress-Nginx 是 Kubernetes 集群最常用的入口控制器之一,负责把外部流量按规则路由到集群内的服务。容器化部署中,官方的 Nginx Docker 镜像被海量项目用作前置反向代理与静态资源服务器,几乎成为标配组件。
Nginx 的典型用途十分广泛:作为网站前端服务器分发静态资源;作为反向代理统一接入并隐藏后端的多个微服务;作为负载均衡器实现横向扩展与高可用;作为 SSL 卸载层集中管理 HTTPS 证书;以及配合 OpenResty 充当可编程的 API 网关。其优势与需要注意之处包括:
在日常运维中,Nginx 有几类高频出现的配置场景,掌握它们的最佳实践能让站点既安全又高效:
把这些实践融入日常,Nginx 就能稳稳地承担起整个站点流量入口的重任。
凭借极致的性能、出色的稳定性与灵活的配置,Nginx 已经成为现代 Web 架构中近乎默认的流量入口组件,是后端工程师与运维人员必须掌握的核心工具。

| 类型 | Web 服务器 / 反向代理 |
| 首次发布 | 2004 年 |
| 特色 | 高并发 / 反代 / 负载均衡 |
| 官网 | nginx.org |
登录 后参与讨论
暂无讨论,来发表第一条评论吧