apache與lighttpd、nginx三大WEB服務(wù)器平臺(tái)分析
這篇沒有把IIS服務(wù)器列入其中,因?yàn)镮IS只能在Windows上跑,而apache與lighttpd、nginx這三個(gè)WEB網(wǎng)站服務(wù)器可以在各種平臺(tái)上跑。下面看文章的分析:
一.軟件介紹(apache lighttpd nginx)
1. lighttpd
Lighttpd 是一個(gè)具有非常低的內(nèi)存開銷, cpu 占用率低,效能好,以及豐富的模塊等特點(diǎn)。 lighttpd 是眾多 OpenSource 輕量級(jí)的 web server 中較為優(yōu)秀的一個(gè)。支持 FastCGI, CGI, Auth, 輸出壓縮 (output compress), URL 重寫 , 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)行來 cgi, 單獨(dú)一個(gè)進(jìn)程死掉 , 系統(tǒng)可以很輕易的丟棄 , 然后重新分配新的進(jìn)程來運(yùn)行邏輯 .
· 從安全性上看 , fastcgi 和宿主的 server 完全獨(dú)立 , fastcgi 怎么 down 也不會(huì)把 server 搞垮 ,
· 從性能上看 , fastcgi 把動(dòng)態(tài)邏輯的處理從 server 中分離出來 , 大負(fù)荷的 IO 處理還是留給宿主 server, 這樣宿主 server 可以一心一意作 IO, 對(duì)于一個(gè)普通的動(dòng)態(tài)網(wǎng)頁來說 , 邏輯處理可能只有一小部分 , 大量的圖片等靜態(tài) IO 處理完全不需要邏輯程序的參與 ( 注 1)
· 從擴(kuò)展性上講 , fastcgi 是一個(gè)中立的技術(shù)標(biāo)準(zhǔn) , 完全可以支持任何語言寫的處理程序 (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è)完全通過 internet 進(jìn)行運(yùn)作的非盈利機(jī)構(gòu) , 由它來決定 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) 可以通過 web 瀏覽器監(jiān)視服務(wù)器的狀態(tài) , 可以自定義日志 .
10) 支持服務(wù)器端包含命令 (ssi).
11) 支持安全 socket 層 (ssl).
12) 具有用戶會(huì)話過程的跟蹤能力 .
13) 支持 fastcgi
14) 支持 java servlets
3. nginx
Nginx 是俄羅斯人編寫的十分輕量級(jí)的 HTTP 服務(wù)器 ,Nginx ,它的發(fā)音為 “engine X” , 是一個(gè)高性能的 HTTP 和反向代理服務(wù)器,同時(shí)也是一個(gè) IMAP/POP3/SMTP 代理服務(wù)器. Nginx 是由俄羅斯人 Igor Sysoev 為俄羅斯訪問量第二的 Rambler.ru 站點(diǎn)開發(fā) .
Nginx 以事件驅(qū)動(dòng)的方式編寫,所以有非常好的性能,同時(shí)也是一個(gè)非常高效的反向代理、負(fù)載平衡。其擁有匹配 Lighttpd 的性能,同時(shí)還沒有 Lighttpd 的內(nèi)存泄漏問題,而且 Lighttpd 的 mod_proxy 也有一些問題并且很久沒有更新。但是 Nginx 并不支持 cgi 方式運(yùn)行,原因是可以減少因此帶來的一些程序上的漏洞。所以必須使用 FastCGI 方式來執(zhí)行 PHP 程序。
nginx 做為 HTTP 服務(wù)器,有以下幾項(xiàng)基本特性:
處理靜態(tài)文件,索引文件以及自動(dòng)索引;打開文件描述符緩沖.
無緩存的反向代理加速,簡(jiǎn)單的負(fù)載均衡和容錯(cuò).
FastCGI ,簡(jiǎn)單的負(fù)載均衡和容錯(cuò).
模塊化的結(jié)構(gòu)。包括 gzipping, byte ranges, chunked responses, 以及 SSI-filter 等 filter 。如果由 FastCGI 或其它代理服務(wù)器處理單頁中存在的多個(gè) SSI ,則這項(xiàng)處理可以并行運(yùn)行,而不需要相互等待。
Nginx 專為性能優(yōu)化而開發(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)遇到訪問的峰值,或者有人惡意發(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è)沒有活動(dòng)的連接,它只占 2.5M 內(nèi)存,所以類似 DOS 這樣的攻擊對(duì) nginx 來說基本上是毫無用處的。就穩(wěn)定性而言 ,nginx 比 lighthttpd 更勝一籌。
Nginx 支持熱部署。它的啟動(dòng)特別容易 , 并且?guī)缀蹩梢宰龅?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é)約下來的服務(wù)器成本無疑是客觀的。而有些小型網(wǎng)站往往服務(wù)器不多,如果采用 Apache 這類傳統(tǒng) Web 服務(wù)器,似乎也還能撐過去。但有其很明顯的弊端: Apache 在處理流量爆發(fā)的時(shí)候 ( 比如爬蟲或者是 Digg 效應(yīng) ) 很容易過載,這樣的情況下采用 Nginx 最為合適。
建議方案:
Apache 后臺(tái)服務(wù)器(主要處理 php 及一些功能請(qǐng)求 如:中文 url )
Nginx 前端服務(wù)器(利用它占用系統(tǒng)資源少得優(yōu)勢(shì)來處理靜態(tài)頁面大量請(qǐng)求)
Lighttpd 圖片服務(wù)器
總體來說,隨著 nginx 功能得完善將使他成為今后 web server 得主流。
三 . 性能測(cè)試 :
將分別測(cè)試 3 種軟件在對(duì)動(dòng)態(tài)頁面和靜態(tài)頁面請(qǐng)求及并發(fā)時(shí)的響應(yīng)時(shí)間
l 靜態(tài)頁面 搜狐首頁
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)頁面 內(nèi)部社區(qū)首頁
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ù)頁
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. 門戶網(wǎng)站類:
搜狐 LINUX apache 1.3.37
新浪 LINUX apache 2.0.54
迅雷 LINUX nginx 0.6.31
163 LINUX apache 2.2.6
2. 搜索類
百度 unknown BWS 1.0
Google linux gws
Sougou FreeBSD apache 2.2.4
Hao123 linux apache 2.2.4
4. 電子郵箱類
126 linux apache
Hotmail win2003 microsoft-IIS 6.0
新浪郵箱 F5 Big-IP apache 2.2.8
263 linux apache 2.2.6
5. 博客類
新浪博客 linux nginx 0.5.35
搜狐博客 linux nginx
迅雷博客 linux nginx 0.6.32
天涯博客 F5 Big-IP Microsoft-IIS/5.0
6 .視頻類
優(yōu)酷 linux apache
土豆 linux apache
Ku6 linux apache
六間房 linux nginx 0.6.14
關(guān)鍵詞:web 服務(wù)器
新文章:
- CentOS7下圖形配置網(wǎng)絡(luò)的方法
- CentOS 7如何添加刪除用戶
- 如何解決centos7雙系統(tǒng)后丟失windows啟動(dòng)項(xiàng)
- CentOS單網(wǎng)卡如何批量添加不同IP段
- CentOS下iconv命令的介紹
- Centos7 SSH密鑰登陸及密碼密鑰雙重驗(yàn)證詳解
- CentOS 7.1添加刪除用戶的方法
- CentOS查找/掃描局域網(wǎng)打印機(jī)IP講解
- CentOS7使用hostapd實(shí)現(xiàn)無AP模式的詳解
- su命令不能切換root的解決方法
- 解決VMware下CentOS7網(wǎng)絡(luò)重啟出錯(cuò)
- 解決Centos7雙系統(tǒng)后丟失windows啟動(dòng)項(xiàng)
- CentOS下如何避免文件覆蓋
- CentOS7和CentOS6系統(tǒng)有什么不同呢
- Centos 6.6默認(rèn)iptable規(guī)則詳解