Nginx
| Nginx | |
|---|---|
| 中文名 | Nginx |
| 英文名 | Nginx |
| 其他名稱 | engine x |
| 開發者 | Igor Sysoev[1],F5, Inc.[2] |
| 首次發布 | 2004年10月4日[3] |
| 編程語言 | C[1] |
| 作業系統 | 跨平台[1] |
| 類型 | Web伺服器、反向代理、負載均衡器 |
| 許可證 | BSD類許可證[3] |
| 網站 | nginx.org |
Nginx(讀作「engine x」)是一款高性能的開源Web伺服器軟件,同時也可作為反向代理伺服器、負載均衡器和HTTP緩存工具使用[3]。其最初由俄羅斯工程師Igor Sysoev為解決C10k問題(即同時處理一萬個並發連接的難題)而開發,旨在滿足當時俄羅斯高流量網站Rambler.ru的訪問需求[4][2]。Nginx以其事件驅動的異步非阻塞架構聞名,在高並發場景下能夠保持低內存佔用和高穩定性,已成為驅動全球互聯網流量的核心基礎設施之一[5]。
Nginx的開發工作始於2002年,由Igor Sysoev在業餘時間進行。2004年10月4日,第一個公開版本0.1.0正式發布,原始碼以類BSD許可證的形式開放[3]。早期版本主要專注於解決Web伺服器的C10k問題,即如何高效處理大量並發連接[6]。到2008年9月,Nginx已為Rambler搜索門戶每日處理超過5億個請求[6]。
2011年,Igor Sysoev與美國企業家Gus Robertson共同創立了Nginx公司(Nginx, Inc.),為企業用戶提供商業支持和商業版本Nginx Plus[3]。2019年3月,應用交付網絡巨頭F5, Inc.以約6.7億美元的價格收購了Nginx公司[2],這一收購旨在將Nginx的軟件負載均衡能力與F5的硬件產品線整合,以增強其在多雲應用服務領域的競爭力。
作為Web伺服器,Nginx在處理靜態文件(如HTML、圖片、CSS和JavaScript)方面性能尤為突出,被證明比傳統的Apache伺服器快三倍以上[7]。通過sendfile等系統調用優化,Nginx能零拷貝地將文件從磁盤發送到網絡套接字,極大地提高了靜態內容的交付效率。
Nginx可作為反向代理伺服器,接收客戶端請求並將其轉發至一個或多個後端伺服器[8]。在反向代理模式下,Nginx支持多種負載均衡算法,包括:
- **輪詢(Round Robin)**:按順序將請求分發到後端伺服器。
- **權重(Weight)**:為性能更強的伺服器分配更高權重,使其處理更多請求。
- **IP哈希(IP Hash)**:確保來自同一客戶端的請求始終被發送到同一台後端伺服器,用於會話保持。
Nginx具備強大的緩存功能,能夠緩存後端伺服器(如Apache或Tomcat)生成的動態內容[8]。通過配置緩存鍵和過期策略,Nginx可以大幅減輕後端應用伺服器的壓力,顯著提升用戶端的響應速度。
Nginx採用**master-worker**多進程架構[9]。master進程負責讀取配置、綁定端口和監控worker進程;worker進程則基於epoll(Linux)或kqueue(BSD系統)等事件驅動模型,每個worker可以異步處理數千甚至數萬個並發連接。這種事件驅動的異步非阻塞模型是Nginx能夠高效處理高並發請求的關鍵[9]。
Nginx的核心功能非常精簡,大部分功能是通過模塊(Modules)來擴展的。從1.9.11版本(2015年底)開始,Nginx官方支持動態模塊加載(load_module指令)[10],允許在不重新編譯整個二進制文件的情況下添加或更新第三方模塊。
Nginx開源版本分為兩個分支:
- **Mainline version (主線版本)**:包含最新功能和改進,但可能含有尚未完全穩定的新代碼。
- **Stable version (穩定版本)**:基於主線版本分支出來,經過更充分的測試,適用於生產環境。
Nginx Plus是F5提供的商業版本,在開源版本基礎上增加了額外的企業級功能,包括:
- 高級負載均衡算法(如最少連接數、一致性哈希)。
- 健康檢查和主動監控。
- 基於JSON的實時監控儀錶板(live activity monitoring dashboard)。
- 針對Kubernetes和微服務架構的強化支持。
OpenResty是一個基於Nginx與LuaJIT的Web平台,由中國的章亦春(agentzh)創建並維護[11]。它將大量Lua庫集成到Nginx中,使開發者能夠直接在Nginx內部使用Lua腳本編寫業務邏輯,極大地擴展了Nginx的可編程性。
Nginx是全球市場份額最大的Web伺服器之一。根據Netcraft在2023年的Web伺服器調查,Nginx以38.88%的市場份額位列第一,顯著領先於Apache的27.02%和Microsoft-IIS的9.99%[12]。另一家分析機構W3Techs的統計數據則顯示Nginx的市場份額約為34%,同樣位居榜首[13]。
- ↑ 1.0 1.1 1.2 Nginx官網
- ↑ 2.0 2.1 2.2 Nginx: EPFL Graph Search
- ↑ 3.0 3.1 3.2 3.3 3.4 Nginx基本介紹
- ↑ Web伺服器 Nginx
- ↑ NGINX完全手冊
- ↑ 6.0 6.1 Nginx History
- ↑ Nginx和Apache區別
- ↑ 8.0 8.1 NGINX技術全解析
- ↑ 9.0 9.1 Nginx進階指南
- ↑ Nginx架構設計進化
- ↑ OpenResty簡介
- ↑ April 2023 Web Server Survey
- ↑ Historical quarterly trends in usage statistics of web servers