三大WEB服務(wù)器對(duì)比分析(apache ,lighttpd,nginx)
Posted on 2008-12-29 14:03 井中月 閱讀(151358) 評(píng)論(19) 編輯 收藏 所屬分類(lèi): Other一.軟件介紹(apache lighttpd nginx)
1. lighttpd
Lighttpd是一個(gè)具有非常低的內(nèi)存開(kāi)銷(xiāo),cpu占用率低,效能好,以及豐富的模塊等特點(diǎn)。lighttpd是眾多OpenSource輕量級(jí)的web server中較為優(yōu)秀的一個(gè)。支持FastCGI, CGI, Auth, 輸出壓縮(output compress), URL重寫(xiě), Alias等重要功能。
Lighttpd使用fastcgi方式運(yùn)行php,它會(huì)使用很少的PHP進(jìn)程響應(yīng)很大的并發(fā)量。
Fastcgi的優(yōu)點(diǎn)在于:
· 從穩(wěn)定性上看, fastcgi是以獨(dú)立的進(jìn)程池運(yùn)行來(lái)cgi,單獨(dú)一個(gè)進(jìn)程死掉,系統(tǒng)可以很輕易的丟棄,然后重新分配新的進(jìn)程來(lái)運(yùn)行邏輯.
· 從安全性上看, fastcgi和宿主的server完全獨(dú)立, fastcgi怎么down也不會(huì)把server搞垮,
· 從性能上看, fastcgi把動(dòng)態(tài)邏輯的處理從server中分離出來(lái), 大負(fù)荷的IO處理還是留給宿主server, 這樣宿主server可以一心一意作IO,對(duì)于一個(gè)普通的動(dòng)態(tài)網(wǎng)頁(yè)來(lái)說(shuō), 邏輯處理可能只有一小部分, 大量的圖片等靜態(tài)IO處理完全不需要邏輯程序的參與(注1)
· 從擴(kuò)展性上講, fastcgi是一個(gè)中立的技術(shù)標(biāo)準(zhǔn), 完全可以支持任何語(yǔ)言寫(xiě)的處理程序(php,java,python...)
2.apache
apache是世界排名第一的web服務(wù)器, 根據(jù)netcraft(www.netsraft.co.uk)所作的調(diào)查,世界上百分之五十以上的web服務(wù)器在使用apache.
1995年4月, 最早的apache(0.6.2版)由apache group公布發(fā)行. apache group 是一個(gè)完全通過(guò)internet進(jìn)行運(yùn)作的非盈利機(jī)構(gòu), 由它來(lái)決定apache web服務(wù)器的標(biāo)準(zhǔn)發(fā)行版中應(yīng)該包含哪些內(nèi)容. 準(zhǔn)許任何人修改隱錯(cuò), 提供新的特征和將它移植到新的平臺(tái)上, 以及其它的工作. 當(dāng)新的代碼被提交給apache group時(shí), 該團(tuán)體審核它的具體內(nèi)容, 進(jìn)行測(cè)試, 如果認(rèn)為滿意, 該代碼就會(huì)被集成到apache的主要發(fā)行版中.
apache 的特性:
1) 幾乎可以運(yùn)行在所有的計(jì)算機(jī)平臺(tái)上.
2) 支持最新的http/1.1協(xié)議
3) 簡(jiǎn)單而且強(qiáng)有力的基于文件的配置(httpd.conf).
4) 支持通用網(wǎng)關(guān)接口(cgi)
5) 支持虛擬主機(jī).
6) 支持http認(rèn)證.
7) 集成perl.
8) 集成的代理服務(wù)器
9) 可以通過(guò)web瀏覽器監(jiān)視服務(wù)器的狀態(tài), 可以自定義日志.
10) 支持服務(wù)器端包含命令(ssi).
11) 支持安全socket層(ssl).
12) 具有用戶(hù)會(huì)話過(guò)程的跟蹤能力.
13) 支持fastcgi
14) 支持java servlets
3.nginx
Nginx是俄羅斯人編寫(xiě)的十分輕量級(jí)的HTTP服務(wù)器,Nginx,它的發(fā)音為“engine X”, 是一個(gè)高性能的HTTP和反向代理服務(wù)器,同時(shí)也是一個(gè)IMAP/POP3/SMTP 代理服務(wù)器.Nginx是由俄羅斯人 Igor Sysoev為俄羅斯訪問(wèn)量第二的 Rambler.ru站點(diǎn)開(kāi)發(fā).
Nginx以事件驅(qū)動(dòng)的方式編寫(xiě),所以有非常好的性能,同時(shí)也是一個(gè)非常高效的反向代理、負(fù)載平衡。其擁有匹配 Lighttpd的性能,同時(shí)還沒(méi)有Lighttpd的內(nèi)存泄漏問(wèn)題,而且Lighttpd的mod_proxy也有一些問(wèn)題并且很久沒(méi)有更新。但是Nginx并不支持cgi方式運(yùn)行,原因是可以減少因此帶來(lái)的一些程序上的漏洞。所以必須使用FastCGI方式來(lái)執(zhí)行PHP程序。
nginx做為HTTP服務(wù)器,有以下幾項(xiàng)基本特性:
處理靜態(tài)文件,索引文件以及自動(dòng)索引;打開(kāi)文件描述符緩沖.
無(wú)緩存的反向代理加速,簡(jiǎn)單的負(fù)載均衡和容錯(cuò).
FastCGI,簡(jiǎn)單的負(fù)載均衡和容錯(cuò).
模塊化的結(jié)構(gòu)。包括gzipping, byte ranges, chunked responses,以及 SSI-filter等filter。如果由FastCGI或其它代理服務(wù)器處理單頁(yè)中存在的多個(gè)SSI,則這項(xiàng)處理可以并行運(yùn)行,而不需要相互等待。
Nginx專(zhuān)為性能優(yōu)化而開(kāi)發(fā),性能是其最重要的考量,實(shí)現(xiàn)上非常注重效率。它支持內(nèi)核Poll模型,能經(jīng)受高負(fù)載的考驗(yàn),有報(bào)告表明能支持高達(dá) 50,000個(gè)并發(fā)連接數(shù)。
Nginx具有很高的穩(wěn)定性。其它HTTP服務(wù)器,當(dāng)遇到訪問(wèn)的峰值,或者有人惡意發(fā)起慢速連接時(shí),也很可能會(huì)導(dǎo)致服務(wù)器物理內(nèi)存耗盡頻繁交換,失去響應(yīng),只能重啟服務(wù)器。例如當(dāng)前apache一旦上到200個(gè)以上進(jìn)程,web響應(yīng)速度就明顯非常緩慢了。而Nginx采取了分階段資源分配技術(shù),使得它的CPU與內(nèi)存占用率非常低。nginx官方表示保持10,000個(gè)沒(méi)有活動(dòng)的連接,它只占2.5M內(nèi)存,所以類(lèi)似DOS這樣的攻擊對(duì)nginx來(lái)說(shuō)基本上是毫無(wú)用處的。就穩(wěn)定性而言,nginx比lighthttpd更勝一籌。
Nginx支持熱部署。它的啟動(dòng)特別容易, 并且?guī)缀蹩梢宰龅?/span>7*24不間斷運(yùn)行,即使運(yùn)行數(shù)個(gè)月也不需要重新啟動(dòng)。你還能夠在不間斷服務(wù)的情況下,對(duì)軟件版本進(jìn)行進(jìn)行升級(jí)。
二.3種WEB服務(wù)器的比較:
server |
Apache |
Nginx |
Lighttpd |
Proxy代理 |
非常好 |
非常好 |
一般 |
Rewriter |
好 |
非常好 |
一般 |
Fcgi |
不好 |
好 |
非常好 |
熱部署 |
不支持 |
支持 |
不支持 |
系統(tǒng)壓力比較 |
很大 |
很小 |
比較小 |
穩(wěn)定性 |
好 |
非常好 |
不好 |
安全性 |
好 |
一般 |
一般 |
技術(shù)支持 |
非常好 |
很少 |
一般 |
靜態(tài)文件處理 |
一般 |
非常好 |
好 |
Vhosts虛擬主機(jī) |
支持 |
不支持 |
支持 |
反向代理 |
一般 |
非常好 |
一般 |
Session sticky |
支持 |
不支持 |
不支持 |
注:在相對(duì)比較大的網(wǎng)站,節(jié)約下來(lái)的服務(wù)器成本無(wú)疑是客觀的。而有些小型網(wǎng)站往往服務(wù)器不多,如果采用 Apache 這類(lèi)傳統(tǒng) Web 服務(wù)器,似乎也還能撐過(guò)去。但有其很明顯的弊端: Apache 在處理流量爆發(fā)的時(shí)候(比如爬蟲(chóng)或者是 Digg 效應(yīng)) 很容易過(guò)載,這樣的情況下采用 Nginx 最為合適。
建議方案:
Apache 后臺(tái)服務(wù)器(主要處理php及一些功能請(qǐng)求 如:中文url)
Nginx 前端服務(wù)器(利用它占用系統(tǒng)資源少得優(yōu)勢(shì)來(lái)處理靜態(tài)頁(yè)面大量請(qǐng)求)
Lighttpd 圖片服務(wù)器
總體來(lái)說(shuō),隨著nginx功能得完善將使他成為今后web server得主流。
三.性能測(cè)試:
將分別測(cè)試3種軟件在對(duì)動(dòng)態(tài)頁(yè)面和靜態(tài)頁(yè)面請(qǐng)求及并發(fā)時(shí)的響應(yīng)時(shí)間
l 靜態(tài)頁(yè)面 搜狐首頁(yè)
LIGHTTPD
n/-c(ab參數(shù)) |
cpu% |
Mem |
RequestsperSecond |
Time taken for tests |
100000/100 |
64 |
60 |
462.75 |
21.6 |
100000/200 |
67 |
60 |
312.07 |
32.4 |
100000/500 |
83 |
60 |
137.24 |
72.8 |
100000/1000 出現(xiàn)錯(cuò)誤丟包 |
94 |
60 |
126.6 |
78.9 |
NGINX
n/-c(ab參數(shù)) |
cpu% |
Mem |
RequestsperSecond |
Time taken for tests |
100000/100 |
34.6 |
140 |
943.66 |
10.597 |
100000/200 |
35.6 |
110 |
924.32 |
10.818 |
100000/500 |
34.3 |
110 |
912.68 |
10.956 |
100000/1000 |
37 |
160 |
832.59 |
12.106 |
APACHE
n/-c(ab參數(shù)) |
cpu% |
Mem |
RequestsperSecond |
Time taken for tests |
100000/100 |
40.6 |
170 |
690.72 |
14.47 |
100000/200 |
41.1 |
180 |
685.39 |
14.59 |
100000/500 |
42.3 |
190 |
633.64 |
15.78 |
100000/1000 |
43.1 |
200 |
547.53 |
18.26 |
l 動(dòng)態(tài)頁(yè)面 內(nèi)部社區(qū)首頁(yè)
LIGHTTPD
n/-c(ab參數(shù)) |
cpu% |
Mem |
RequestsperSecond |
Time taken for tests |
1000/100 |
50 |
200 |
33.54 |
29.816 |
1000/200 |
52 |
210 |
30.43 |
32.858 |
1000/500 |
54 |
230 |
25.79 |
38.76 |
1000/1000 |
62 |
250 |
24.83 |
40.28 |
NGINX
n/-c(ab參數(shù)) |
cpu% |
Mem |
RequestsperSecond |
Time taken for tests |
1000/100 |
53.8 |
250 |
83.12 |
12.305 |
1000/200 |
55.8 |
250 |
74.05 |
13.504 |
1000/500 |
56 |
260 |
58.99 |
16.951 |
1000/1000 |
58 |
260 |
43.41 |
23.347 |
APACHE
n/-c(ab參數(shù)) |
cpu% |
Mem |
RequestsperSecond |
Time taken for tests |
100000/100 |
60 |
200 |
27.37 |
36.541 |
100000/200 |
61 |
220 |
23.82 |
41.981 |
100000/500 |
73 |
150 |
20.59 |
48.562 |
100000/1000 |
53 |
200 |
27.18 |
36.796 |
l PHPINFO函數(shù)頁(yè)
LIGHTTPD
n/-c(ab參數(shù)) |
cpu% |
Mem |
RequestsperSecond |
Time taken for tests |
100000/100 |
45 |
20 |
168.06 |
59.504 |
100000/200 |
47 |
22 |
140.64 |
71.103 |
100000/500 |
49 |
24 |
52.80 |
189.386 |
100000/1000 |
在請(qǐng)求到4840時(shí)測(cè)試測(cè)試程序死掉 |
NGINX
n/-c(ab參數(shù)) |
cpu% |
Mem |
RequestsperSecond |
Time taken for tests |
100000/100 |
70 |
120 |
143.46 |
69.706 |
100000/200 |
72 |
130 |
140.57 |
71.140 |
100000/500 |
73 |
150 |
135.87 |
73.601 |
100000/1000 |
77 |
160 |
132.18 |
75.657 |
APACHE 出現(xiàn)丟包
n/-c(ab參數(shù)) |
cpu% |
Mem |
RequestsperSecond |
Time taken for tests |
100000/100 |
70 |
180 |
245.73 |
40.694 |
100000/200 |
72 |
190 |
245.79 |
40.684 |
100000/500 |
75 |
200 |
241.29 |
41.443 |
100000/1000 |
77 |
220 |
236.74 |
42.239 |
四.各大網(wǎng)站WEB服務(wù)器資源列表
網(wǎng)站名 操作系統(tǒng) web服務(wù)器
1.門(mén)戶(hù)網(wǎng)站類(lèi):
搜狐 LINUX apache 1.3.37
新浪 LINUX apache 2.0.54
迅雷 LINUX nginx 0.6.31
163 LINUX apache 2.2.6
2.搜索類(lèi)
百度 unknown BWS 1.0
Google linux gws
Sougou FreeBSD apache 2.2.4
Hao123 linux apache 2.2.4
4. 電子郵箱類(lèi)
126 linux apache
Hotmail win2003 microsoft-IIS 6.0
新浪郵箱 F5 Big-IP apache 2.2.8
263 linux apache 2.2.6
5. 博客類(lèi)
新浪博客 linux nginx 0.5.35
搜狐博客 linux nginx
迅雷博客 linux nginx 0.6.32
天涯博客 F5 Big-IP Microsoft-IIS/5.0
6.視頻類(lèi)
優(yōu)酷 linux apache
土豆 linux apache
Ku6 linux apache
六間房 linux nginx 0.6.14