下面用“3 個 1 分鐘”幫你快速建立 Nginx 的整體印象:
1 分鐘了解它為何誕生,1 分鐘看懂它的 5 大核心優勢,再花 1 分鐘搞清和 Apache 的關鍵差異。
-
誕生背景(2002-2004)
? 作者:俄羅斯系統工程師 Igor Sysoev
? 初衷:解決 C10K 問題——單機同時維持 1 萬個并發連接
? 場景:當時門戶網站 Rambler 的流量暴漲,傳統 Apache prefork/worker 模式在 5-8 k 連接時 CPU、內存迅速耗盡,需要一種更輕量的服務器
? 結果:2004 年 10 月發布 Nginx 0.1.0,2019 年成為全球市場份額最高的 Web 服務器(>35%) -
五大核心優勢
- 高并發:事件驅動 + 異步非阻塞 I/O(epoll/kqueue),單機可輕松數萬并發
- 低資源:每個連接僅占用幾 KB 內存,CPU 利用率極高
- 多功能:既是 Web 服務器,也是反向代理、負載均衡、緩存、TLS 終端、郵件代理
- 熱部署:master-worker 架構,reload 不丟連接,版本升級零中斷
- 模塊化:核心精簡,按需編譯進模塊,避免“功能膨脹”
- Nginx vs Apache——一句話總結
“Apache 像瑞士軍刀,功能全;Nginx 像手術刀,專精高性能。”
維度 | Apache | Nginx |
---|---|---|
并發模型 | 多進程/多線程(prefork/worker/event) | 單線程異步事件驅動 |
靜態文件 | 通過內核 read/write,高并發易堵 | sendfile/zero-copy,2-3 倍吞吐 |
動態內容 | 內置 mod_php / mod_perl | 交給后端 PHP-FPM/uWSGI,解耦更靈活 |
內存占用 | 每連接≈幾 MB | 每連接≈幾 KB |
配置粒度 | 目錄級 .htaccess 靈活 | 僅 server/location 級,無 .htaccess,換來更高性能 |
模塊加載 | 運行時動態加載 | 編譯時靜態集成(2016 起支持部分動態模塊) |
適用場景 | 功能豐富、低并發或需要 .htaccess 的共享主機 | 高并發、反向代理、負載均衡、靜態資源/CDN |
一句話選型
? 流量大、需要反向代理或負載均衡 → 選 Nginx
? 傳統虛擬主機、需要大量動態模塊或 .htaccess → 選 Apache
? 很多團隊“Nginx 前置 + Apache 后置”混合架構,兼得性能與兼容。