商店
NGINX
0
2004年10月4日
概述
Nginx(發音為 "engine-x")是一個開源的 Web 伺服器軟體,同時也可作為反向代理、負載平衡器、郵件代理程式和 HTTP 快取伺服器。它由俄羅斯開發者 Igor Sysoev 創建,於 2004 年首次發布,旨在解決傳統 Web 伺服器(如 Apache)的效率問題,提供高效能和低資源消耗的解決方案。 Nginx 使用模組化架構,支援非同步事件驅動模型,能夠處理數千個並發連接,而不依賴執行緒或進程模型。它適用於 Linux、Windows、macOS 和 FreeBSD 等平台,支援 x86_64 和 arm64 架構,廣泛用於靜態內容服務、API 閘道和微服務環境。 Nginx 由 Nginx Inc.(現為 F5 公司擁有)維護,提供開源版和商業版(Nginx Plus),支援 QUIC/HTTP/3 和增強負載平衡。
歷史與發展
- 起源:
- 2002:Igor Sysoev 開始開發 Nginx,以解決 Apache 在高並發下的效能瓶頸,當時他在 Rambler 公司工作。
- 發展歷程:
- 2004年:Nginx 首次公開發布,版本 0.1.0,作為 Rambler 的內部工具,用於處理高流量網站。
- 2006年:Nginx 0.5 引進模組化架構,支援非同步事件驅動。
- 2011年:成立 Nginx Inc.,提供商業支持,Nginx 1.0 發布,支持 SPDY(HTTP/2 前身)。
- 2019年:F5 Networks 收購 Nginx Inc.,開源版繼續維護。
- 2021年:Nginx 1.21 支援 QUIC/HTTP/3。
- 2025年:Nginx 1.27.3 發布,優化負載平衡和安全性,支援 WASM 模組。
- 社區與支持:
- 由 F5 Nginx 團隊維護,託管於 nginx.org、GitHub 和論壇(community.nginx.com)。
- 支援英語和多語言(中文透過社區翻譯),文件全面(docs.nginx.com)。
- Reddit 用戶稱「Nginx 是 Web 伺服器的黃金標準」。
- 開源許可:
- 2-Clause BSD License,允許商業使用和修改。
主要特點
Nginx 以高效能、模組化和多功能為核心,適合 Web 伺服器和代理場景。以下是其主要特點:
- 事件驅動架構
- 使用非同步、非阻塞事件驅動模型,一個行程可處理數千個連線。
- 模組化設計
- 支援動態載入模組,如 HTTP/2、SSL/TLS、gzip 壓縮。
- 反向代理和負載平衡
- 支援反向代理(proxy_pass)和負載平衡(upstream)。
- HTTP/3 和 QUIC 支持
- 支援 HTTP/3 和 QUIC 協議,提高速度和安全性。
- 快取和壓縮
- 支援 HTTP 快取(proxy_cache)和 gzip 壓縮(gzip on)。
- 性能與硬體支持
- 支援 x86_64 和 arm64,佔用 50-200 MB RAM。
- 安全與隱私
- 支援 SSL/TLS、HTTP/2 和存取控制。
優勢與限制
優勢
- 高性能:
- 處理 10,000+ 並發連接,優於 Apache。
- X 貼文表示「Nginx 的事件驅動讓伺服器更有效率」。
- 模組化:
- 靈活擴展,適合自訂配置。
- 多功能:
- Web 伺服器、代理、負載平衡於一身。
- 開源免費:
- 2-Clause BSD License,支援商業使用。
- 社區支持:
- 活躍社群和文件。
限制
- 配置複雜:
- 學習曲線陡峭,不如 Apache 的 .htaccess。
- 解決:使用 Nginx 設定生成器。
- 動態內容弱:
- 適合靜態內容,反向代理動態應用需額外配置。
- 對比伺服器:
- Apache:模組豐富,.htaccess 支援。
- Lighttpd:輕量,適合嵌入式。
- Caddy:自動 HTTPS。
總結
Nginx 是一個免費、開源的高效能 Web 伺服器、反向代理和負載平衡器。它以事件驅動架構、模組化和高效著稱,Nginx 的性能和模組化突出,但配置複雜。