本次調(diào)研主要對目前主流的WEB服務(wù)器Apache/Lighttpd/Nginx下靜態(tài)文件的訪問進(jìn)行對比。主要從性能、穩(wěn)定性、簡易性(安裝、配置、依賴、大。┑确矫嫒胧帧W詈笤赪indows環(huán)境下,對其性能進(jìn)行比較。
簡介
1. Apache
Apache是世界使用排名第一的Web服務(wù)器軟件。它可以運(yùn)行在幾乎所有廣泛使用的計(jì)算機(jī)平臺上,由于其跨平臺和安全性被廣泛使用,是最流行的Web服務(wù)器端軟件之一。Apache能取得如此成功并不足為奇:它免費(fèi)、穩(wěn)定且性能卓越;但Apache能取得如此佳績的另一個原因是,當(dāng)時互聯(lián)網(wǎng)剛剛興起時,Apache是第一個可用的Web應(yīng)用服務(wù)器,人們沒有其他的選擇。
對于那些需要更強(qiáng)大的Web應(yīng)用服務(wù)器(比如大小、可定制、響應(yīng)速度、可擴(kuò)展性等方面)的人而言,Apache明顯不符合他們的要求,尋找Apache的替代者是更好的選擇。
2. Lighttpd
Lighttpd是一個具有非常低的內(nèi)存開銷,cpu占用率低,效能好,以及豐富的模塊等特點(diǎn)。lighttpd是眾多OpenSource輕量級的web server中較為優(yōu)秀的一個。支持FastCGI, CGI, Auth, 輸出壓縮(output compress), URL重寫, Alias等重要功能。
3. Nginx(Ngwsx)
Nginx是十分輕量級的HTTP服務(wù)器,是一個高性能的HTTP和反向代理服務(wù)器,Nginx以事件驅(qū)動的方式編寫,所以有非常好的性能,同時也是一個非常高效的反向代理、負(fù)載平衡。其擁有匹配 Lighttpd的性能,同時還沒有Lighttpd的內(nèi)存泄漏問題。
對比
server | Apache | Nginx | Lighttpd |
Proxy代理 | 非常好 | 非常好 | 一般 |
Rewriter | 好 | 非常好 | 一般 |
Fastcgi | 不好 | 好 | 非常好 |
熱部署 | 不支持 | 支持 | 不支持 |
系統(tǒng)壓力比較 | 很大 | 很小 | 比較小 |
穩(wěn)定性 | 好 | 非常好 | 不好 |
安全性 | 好 | 一般 | 一般 |
技術(shù)支持 | 非常好 | 很少 | 一般 |
靜態(tài)文件處理 | 一般 | 非常好 | 好 |
Vhosts虛擬主機(jī) | 支持 | 支持 | 支持 |
反向代理 | 一般 | 非常好 | 一般 |
Session sticky | 支持 | 不支持 | 不支持 |
量級 | 重量級 | 輕量 | 輕量 |
復(fù)雜度(安裝、配置) | 較復(fù)雜 | 簡單 | 簡單 |
總結(jié)(靜態(tài)資源)
Apache:
優(yōu)點(diǎn):
Apache的兼容性和穩(wěn)定性都是非常強(qiáng)
Apache 的模塊比 Nginx/Lighttpd豐富
Apache在處理動態(tài)請求比Nginx/Lighttpd更有優(yōu)勢
缺點(diǎn):
屬于重量級web服務(wù)器(重量級主要是在軟件包的大小上比較大,軟件的耦合度大)
在速度、性能不及其他輕量級web服務(wù)器,并且消費(fèi)內(nèi)存較高。使用傳統(tǒng)的select模型,比較穩(wěn)定的Prefork模式為多進(jìn)程模式,需要經(jīng)常派生子進(jìn)程。所以消耗的cpu等服務(wù)器資源比較大。
Lighttpd:
優(yōu)點(diǎn):
虛機(jī)的配置處理方式比 apache 直觀,比Apache輕量
輕量級web服務(wù)器,cpu占用低,效能好,模塊豐富,對fastcgi支持非常好。
支持高并發(fā),和Nginx差不多,比apache性能高很多。
缺點(diǎn):
穩(wěn)定性沒有Apache和Nginx高,bug相對較多
Nginx:
優(yōu)點(diǎn):
輕量級,比apache 占用更少的內(nèi)存及資源
抗并發(fā),nginx 處理請求是異步非阻塞的,而apache 則是阻塞型的,在高并發(fā)下nginx 能保持低資源低消耗高性能
高度模塊化的設(shè)計(jì),編寫模塊相對簡單
有Lighttpd的性能,且更穩(wěn)定,沒有其內(nèi)存泄露問題;
處理靜態(tài)文件,索引文件以及自動索引,打開文件描述符緩沖。
缺點(diǎn):
nginx處理動態(tài)請求是雞肋,不如Apache;
建議方案:
Apache 后臺服務(wù)器(主要處理php及一些動態(tài)請求);Nginx 前端服務(wù)器(高并發(fā)請求、靜態(tài)資源、負(fù)載均衡、反向代理和前端Cache等)。