Ferron:用 Rust 編寫的新型記憶體安全 Web 伺服器展現出與老牌競爭對手抗衡的潛力

BigGo Editorial Team
Ferron:用 Rust 編寫的新型記憶體安全 Web 伺服器展現出與老牌競爭對手抗衡的潛力

在競爭激烈的 Web 伺服器技術領域,一個新的競爭者已經出現。用 Rust 編寫的 Web 伺服器 Ferron 因其記憶體安全特性和效能宣告在開發者圈子中引起了熱議。隨著 Web 基礎設施需求的不斷發展,社群一直在評估這位新成員如何與 Caddy 和 Nginx 等老牌解決方案相抗衡。

早期測試中記憶體效率表現突出

專案建立者分享的早期基準測試顯示,與某些競爭對手相比,其記憶體效率令人印象深刻。在啟用 HTTPS 和 HTTP/2 的情況下提供預設 Apache httpd 頁面的測試中,據報道 Ferron 在記憶體使用方面優於 Caddy 2.9.1。根據開發者的說法,Caddy 使用瞭如此多的記憶體,以至於在每秒 12,600 個請求時,擁有 16 GB RAM 的系統記憶體耗盡,而 Ferron 沒有使用那麼多記憶體,基準測試成功支援到每秒 20,000 個請求。這種效率可能使 Ferron 對資源受限的環境特別有吸引力,儘管一些社群成員認為記憶體問題可能與 Go 的垃圾收集有關,而不是 Caddy 的設計問題。

建立在 Rust 基礎上的安全特性

Ferron 利用 Rust 的記憶體安全保證作為核心賣點。該 Web 伺服器包含內建的安全功能,如透過可配置的請求頭超時保護防止 Slowloris 攻擊。當被特別問及這個漏洞時,開發者解釋說,如果設定了計時器,Ferron 使用的 HTTP 庫 Hyper 預設有 30 秒的請求頭超時。Ferron 為 Hyper 設定計時器以使請求頭超時功能正常工作,從而緩解 Slowloris 攻擊。這種對安全基礎的關注反映了以安全為先原則構建基礎設施的日益重視。

Ferron 主要特點

  • 使用 Rust 編寫,注重記憶體安全
  • 利用 Rust 的非同步功能實現高效能
  • HTTPS 預設啟用 HTTP/2 和 OCSP 裝訂
  • 防禦 Slowloris 攻擊
  • 模組化架構便於擴充套件
  • WebSocket 反向代理功能

元件

  • ferron:主要網路伺服器
  • ferron-passwd:用於生成帶雜湊密碼的使用者條目的工具

與老牌解決方案的比較

社群討論顯示,人們對 Ferron 如何與 Nginx 和 Caddy 等老牌 Web 伺服器相比較有著濃厚的興趣。一些使用者將 Ferron 視為 Caddy 的潛在替代品,一位評論者指出:

「這是一個非常好的 Caddy 替代品。Caddy 使用的配置格式有時感覺過於簡化,使得複雜的配置難以閱讀。我的直覺告訴我,這個可以在不變得更冗長的情況下更好地擴充套件。」

然而,其他人指出,將一個新專案與已有 21 年開發歷史的 Nginx 進行比較可能為時過早。開發者承認,基準比較中明顯排除了 Nginx,這可能是出於營銷原因或比較中的偏見。

功能集和專案成熟度

Ferron 由多個元件組成,包括主要的 Web 伺服器和密碼生成工具。當啟用 HTTPS 時,它預設支援 HTTP/2 和 OCSP stapling。雖然它尚不支援 WebRTC 的 DTLS 等專業協議(即使 Nginx 也只通過補丁支援),但它可以作為 WebSocket 反向代理,用於 WebRTC 應用程式中的信令。

該專案仍處於早期階段,倉庫顯示它是一個正在進行中的工作。安裝說明正在等待初始版本釋出,儘管感興趣的開發者可以使用 Rust 的包管理器 Cargo 從原始碼構建。

隨著 Web 伺服器技術的不斷發展,Ferron 代表了用記憶體安全語言重新實現關鍵基礎設施的持續趨勢。雖然現在預測它是否會挑戰老牌解決方案的主導地位還為時過早,但初步的社群反應表明,人們對優先考慮記憶體安全和效能的替代方案有著真正的興趣。

參考:ferronweb/ferron