1 回答

TA貢獻1775條經驗 獲得超8個贊
1. nginx和lighttpd基本上是同質的,都是采用基于epoll/kqueue/select的全異步事件模型,可以輕松地維持大量的連接,不懼怕 慢連接攻擊。兩者都提供了豐富的HTTP服務功能,例如壓縮、url rewrite、虛擬主機、SSL、proxy等等。
Nginx大量模仿了apache的設計風格,比如模塊的定義、裝配、以及配置數據的解析和組織方式等等。Lighttpd則是自己設計的一套。 和lighttpd相比,Nginx做事更加精細,它提供的一些比較特別。
Nginx的代碼入手更困難一些(主觀看法)。舉個例子,Nginx內部的HTTP狀態遷移是比較隱性的,它通過一系列的handler賦值來實現,如果 要完整地追蹤一次HTTP請求的處理過程,比較費勁。這個就說明,一旦出了問題,追查比較困難。而lighttpd的代碼中有一個顯式的HTTP狀態遷 移,一目了然,相比之下比較好看一些。
擴展模塊開發方面,nginx的module模仿了apache的設計和實現方式,和lighttpd是完全不同的。主觀感覺上nginx模塊開發的入門門檻更高一些,因為必須弄清楚nginx的內部運行機制才好確認你寫的代碼到底有沒有問題和隱患。
和lighttpd一樣,nginx同樣存在著開發文檔很少的問題。最好的文檔還是源碼本身。
2. Nginx完全不支持動態庫so,所以它的模塊都必須靜態編譯,且不能動態加載。要加載哪些模塊,模塊按照怎樣的順序執行,都是在編譯期由 configure指定的,如果要調整,也只能重新編譯一遍,無法通過改配置來實現。在這方面,Lighttpd做得比nginx好。Lighttpd支 持動態so,并且可以在配置文件中調整各模塊的先后順序,在某些應用場景下,調整模塊的先后順序是很有用的。
條件配置語法的靈活性,lighttpd比nginx要好一些。
3. 根據簡單性能對比,Nginx的性能比lighttpd略好
- 1 回答
- 0 關注
- 820 瀏覽
添加回答
舉報