Nginx 简介
Nginx(读作 engine-x)是一款开源的高性能 Web 服务器软件,由俄罗斯工程师 Igor Sysoev 于 2004 年首次发布。它同时具备静态网站托管、反向代理、负载均衡、HTTP 缓存等能力,凭借高并发与低资源占用,如今是互联网上部署最广泛的服务器软件之一。
Nginx 是什么
从角色上看,Nginx 是一个"事件驱动"的服务器程序:请求到达时由少量 worker 进程的事件循环并发处理,而不是"一个连接占用一个进程/线程"。进程模型简单,因此同等并发量下比传统多进程服务器占用更少内存。
核心特性
- 高并发:基于 epoll/kqueue 的异步非阻塞 I/O,单机可支撑数万并发连接。
- 低占用:静态文件服务极快,空闲时几乎不吃 CPU。
- 模块化:反向代理、负载均衡、gzip、SSL 等功能按需编译启用。
- 平滑重载:修改配置可热生效,不中断已建立的连接(见第 03 章)。
- 生态成熟:众多云厂商、CDN 与大型网站用它做流量入口。
- 跨平台:支持 Linux、BSD、macOS 与 Windows,生产环境以 Linux 为主。
典型应用场景
| 场景 | 说明 |
|---|---|
| 静态网站 | 直接托管 HTML/CSS/JS/图片,速度极快(第 05 章) |
| 反向代理 | 把请求转发给 Node/Java/Go 等后端(第 09 章) |
| 负载均衡 | 把流量分发到多台后端服务器(第 10 章) |
| HTTPS 网关 | 统一终结 TLS、挂证书(第 13 章) |
| 缓存与压缩 | gzip 压缩、浏览器与代理缓存(第 11、12 章) |
与 Apache 的简单对比
Apache 与 Nginx 都是主流 Web 服务器,区别主要在设计哲学:
| 对比项 | Nginx | Apache |
|---|---|---|
| 并发模型 | 事件驱动,进程数基本固定 | 每连接一个进程/线程(或事件型 MPM) |
| 高并发内存开销 | 低 | 连接多时明显偏高 |
| 动态语言 | 需反代到后端处理 | 可内置 PHP 等模块 |
| 目录级 .htaccess | 不支持 | 支持,灵活但每次请求都要解析 |
选择建议:以静态内容、反向代理、高并发为主的新站点优先选 Nginx;依赖 .htaccess 的旧式共享主机环境则适合 Apache。
本教程路线
本教程共 26 章,按"安装(02)→ 进程管理(03)→ 配置语法(0408)→ 反代与负载(0910)→ 性能与安全(11~13)→ 进阶(14 章起)"组织。每章都附可直接复制的配置片段与验证命令,学完前 13 章即可搭建一个生产可用的 Web 站点入口。
小结:Nginx 是高性能、低占用的 Web 服务器与反向代理,适合静态托管和作为统一流量入口。从下一章开始,我们将在一台 Linux 服务器上把它安装起来。