高性能 web 服务器、反向代理与负载均衡——事件驱动异步架构、单机十万并发,支撑全球约三分之一的网站
2004 年,俄罗斯工程师 Igor Sysoev 为了解决 C10K 问题(单机同时处理一万并发连接)写下了 Nginx。当时主流的 Apache 采用每连接一个进程/线程的模型,连接一多就被内存和上下文切换拖垮。Nginx 反其道而行:用事件驱动的异步非阻塞架构,少量 worker 进程 + epoll/kqueue 事件循环,单进程就能应对成千上万并发。
二十年过去,Nginx 早已不只是"更快的 web 服务器"。它是现代架构里的万能中间层:静态资源服务器、反向代理、负载均衡器、TLS 终止点、API 网关、缓存层。几乎所有 Kubernetes Ingress、CDN 边缘节点、微服务入口背后,都能看到它的身影。
本教程 10 章从零讲到精通:安装与 master-worker 架构、配置文件结构、server 与 location 匹配、静态资源与压缩、反向代理、负载均衡、HTTPS/TLS、缓存与性能调优、安全加固,最后用一套完整的 SPA + API + HTTPS 生产配置收尾。
六大特性让 Nginx 成为现代 web 架构的基石
异步非阻塞 + epoll/kqueue 事件循环,少量 worker 扛住海量并发连接,内存占用极低。
proxy_pass 把请求转发给后端应用,隐藏内网拓扑、统一入口、转发真实客户端信息。
upstream 多种策略(轮询/权重/ip_hash/least_conn),故障剔除与重试,横向扩容后端。
集中处理 HTTPS 握手与证书,配合 certbot 自动续期,后端无需关心加密,支持 HTTP/2、HTTP/3。
sendfile 零拷贝发送静态文件、gzip/brotli 压缩、proxy_cache 缓存后端响应,大幅减负。
限流 limit_req、连接限制、IP 黑白名单、Basic Auth、防盗链、隐藏版本号,守住入口。
10 章从安装到生产部署,覆盖静态、代理、均衡、HTTPS、性能、安全全链路
web 服务器作用、Nginx vs Apache(事件驱动 vs 进程/线程)、master-worker 架构、安装、启停命令、目录结构。
nginx.conf、context(main/events/http/server/location)、指令与块、include、变量、reload 平滑重载。
虚拟主机 server_name、监听端口、location 匹配规则(前缀/正则/精确/优先级)、root vs alias。
静态站点、index、autoindex、MIME、gzip 压缩、缓存头 expires、try_files、错误页。
proxy_pass、请求头传递(X-Forwarded-For/Host)、upstream、超时、缓冲、WebSocket 代理。
upstream 策略(轮询/weight/ip_hash/least_conn)、健康检查、失败重试、keepalive、会话保持。
SSL 证书配置、Let's Encrypt/certbot、HTTP 跳转 HTTPS、HSTS、TLS 优化、HTTP/2 与 HTTP/3。
proxy_cache、缓存键、FastCGI 缓存、静态缓存、worker 调优、连接数、sendfile/tcp_nopush。
限流 limit_req/limit_conn、IP 黑白名单、Basic Auth、防盗链、隐藏版本号、常见加固。
SPA + API 反代 + HTTPS 完整配置、Docker 运行 Nginx、多站点、日志分析、配置 checklist、故障排查。