2000 年代初期,網頁伺服器會為每個連線指派一個執行緒或行程,高流量網站因此在約一萬個同時連線時遇到瓶頸,即 C10K 問題。俄羅斯開發者 Igor Sysoev 於 2002 年開始撰寫 nginx,正是為了替俄羅斯大型入口網站 Rambler 解決這個問題。

nginx 將連線視為事件,由少數幾個行程處理,因此在高負載下記憶體用量仍維持低檔,行為也保持可預測。同一套核心可作為 HTTP 伺服器、反向代理、內容快取、負載平衡器,以及 TCP/UDP 或郵件代理,並採用模組化架構。

nginx 於 2004 年 10 月首次發布,從俄羅斯入口網站擴散到全球很大一部分網站;nginx.org 依 Netcraft 的資料稱其為全球最受歡迎的網頁伺服器。Nginx, Inc. 於 2011 年成立以提供商業支援,F5 則於 2019 年 3 月以約 6.7 億美元收購該公司,並留任創辦人。

將每個連線當成輕量事件處理,而非一個執行緒

事件驅動的處理方式讓記憶體在大量連線下保持平穩

一台伺服器即涵蓋代理、快取、負載平衡與 TLS

開源基礎建立了龐大的社群與認知度

資源用量低,使其在大規模運行時成本低廉

當瓶頸在於每個連線所耗用的資源時,就改變資源模型:事件驅動的多工處理勝過增加硬體或執行緒,而一台高效率的伺服器可以取代一整套機群。

在 F5 旗下,nginx 仍既是開源專案,也是商業產品系列,廣泛用作網頁流量的前端,以及 Kubernetes ingress controller 的標準。這筆收購估值約 6.7 億美元,開源社群明確是 F5 收購內容的一部分。

追溯依據

參考來源

  1. nginx: web server, reverse proxy, load balancer nginx.org · nginx.org
  2. F5 Acquires NGINX to Bridge NetOps & DevOps F5 Networks · f5.com ·
  3. nginx Wikipedia · en.wikipedia.org