NGINX:撑起互联网半壁江山的 Web 服务器
NGINX:撑起互联网半壁江山的 Web 服务器
3 万 Star,BSD 协议,从 2004 年一直活跃到现在。NGINX 这个项目,很多程序员天天在用,但未必认真了解过它到底能干什么。
简单说,NGINX 是一个 Web 服务器,同时兼具负载均衡、反向代理、API 网关和内容缓存的能力。全球排名前几的网站里,大部分都在用它。

为什么 NGINX 能活这么久
Web 服务器这个赛道竞争很激烈,Apache、Caddy、LiteSpeed 都在抢市场。NGINX 能一直站稳脚跟,核心原因就一个:性能。
传统 Web 服务器处理请求的方式是每个连接分配一个进程或线程,连接一多,系统资源就不够用了。NGINX 用的是事件驱动架构,一个 worker 进程能同时处理成千上万个连接。这个设计在高并发场景下的优势非常明显。
举个例子,同样一台服务器,Apache 可能撑到几百个并发连接就开始吃力,NGINX 轻轻松松处理几万个。这不是理论数据,是实际生产环境里反复验证过的。
模块化设计
NGINX 的功能是通过模块来扩展的。编译的时候可以选择把哪些模块静态编译进去,也可以在运行时动态加载。
常用的模块包括:
- HTTP 核心模块(处理请求、响应、缓存)
- SSL/TLS 模块(HTTPS 加密)
- gzip 模块(响应压缩)
- rewrite 模块(URL 重写)
- stream 模块(TCP/UDP 代理)
动态模块的支持是 1.9.11 版本加进来的。这意味着你不用重新编译整个 NGINX,就能给它加新功能。比如 NGINX JavaScript(njs)这个动态模块,让你用 JavaScript 语法来扩展 NGINX 的行为。

配置和运行
NGINX 的配置是纯文本格式,通过指令(Directive)来控制行为。配置文件的结构比较直观,分成多个 block,每个 block 负责不同的功能区域。
运行时,NGINX 不是单进程模型。它有一个 master 进程负责管理 worker 进程和读取配置,worker 进程负责实际处理请求。worker 的数量可以固定写死,也可以自动匹配 CPU 核心数。大多数情况下,让系统自动决定就行。
进程之间通过共享内存同步数据。比如做限流的时候,所有 worker 需要知道某个客户端在一段时间内访问了多少次,这个计数就存在共享内存区域里。
安装和使用
Linux 用户直接用包管理器装就行。NGINX 官方提供了各个发行版的源,建议用官方源而不是系统自带的版本,因为官方源的更新更及时。
Windows 也能用,但官方明确说了,Windows 版本目前还处于概念验证阶段,只适合开发和测试环境,不建议在生产环境跑。
如果是从源码编译,需要装 gcc、make、libpcre3-dev、zlib1g-dev 这些依赖。如果要用 HTTPS,还得装 libssl-dev。编译流程就是标准的 configure、make、make install 三步。
装好之后,一条命令启动:
sudo /usr/local/nginx/sbin/nginx
用 curl 访问 localhost,看到 “Welcome to nginx!” 就说明跑起来了。
实际应用场景
NGINX 在生产环境里最常见的几个用法:
反向代理:把前端请求转发给后端服务,隐藏后端的真实地址和端口。几乎所有微服务架构都会用到这个功能。
负载均衡:把流量分发到多台后端服务器。支持轮询、权重、IP 哈希等多种策略。
静态文件服务:直接对外提供 HTML、CSS、JS、图片等静态资源的访问。性能比应用服务器自己处理要好很多。
API 网关:配合限流、认证、路由等功能,作为 API 的统一入口。
内容缓存:把后端返回的内容缓存下来,重复请求直接从缓存返回,减轻后端压力。
和同类工具的对比
Apache 胜在生态成熟,模块丰富,.htaccess 灵活。但论高并发性能,NGINX 确实更强。
Caddy 的自动 HTTPS 做得很好,配置也更简洁,适合个人项目和小团队。但在大规模生产环境里,NGINX 的稳定性和可预测性更受信赖。
LiteSpeed 号称比 NGINX 更快,但它是商业软件,开源版本功能有限。
对于大多数团队来说,NGINX 仍然是最稳妥的选择。文档齐全,社区活跃,遇到问题基本都能搜到解决方案。
写在后面
NGINX 不是什么新鲜技术,它已经存在了二十多年。但正是因为足够成熟、足够稳定,它才成了互联网基础设施的一部分。很多新兴的 Web 服务器在功能上可能更花哨,但在可靠性和性能的平衡上,NGINX 依然是标杆。
十多年。但正是因为足够成熟、足够稳定,它才成了互联网基础设施的一部分。很多新兴的 Web 服务器在功能上可能更花哨,但在可靠性和性能的平衡上,NGINX 依然是标杆。

所有评论(0)