一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

關(guān)于Apache/Tomcat/JBOSS/Neginx/lighttpd/Jetty等一...

 Java修煉館 2011-08-28

關(guān)于Apache/Tomcat/JBOSS/Neginx/lighttpd/Jetty等一些常見服務(wù)器的區(qū)別比較和理解

       今天是個很豐富的日子,早上一上班,第一個聽到的驚爆消息就是楷子得了腸胃炎,一大早去醫(yī)院掛水了…… 隨后風(fēng)勝和笑虎也沒來,后來得知他們倆去去華星現(xiàn)代產(chǎn)業(yè)園參加培訓(xùn),內(nèi)容是關(guān)于Apache與Nginx的。于是乎,我非常感興趣地查了一下培訓(xùn)用的PPT,并跟旁邊的俊牧了解了一下關(guān)于服務(wù)器的一些東西……

       整個交流過程中,我發(fā)現(xiàn)好多概念已經(jīng)被我遺忘了,有的也很模糊,于是乎,我還是決定到網(wǎng)上查一下,并記錄下來! 

      下面是令人糾結(jié)的正文……

       

       先說Apache和Tomcat的區(qū)別:

         Apache是世界使用排名第一的Web服務(wù)器軟件。它可以運行在幾乎所有廣泛使用的計算機平臺上,由于其跨平臺和安全性被廣泛使用,是最流行的Web服務(wù)器端軟件之一。 
  在Apache基金會里面ApacheServer永遠會被賦予最大的支持,畢竟大兒子最親嘛,而Apache的開源服務(wù)器軟件Tomcat同樣值得關(guān)注,畢竟Tomcat是開源免費的產(chǎn)品,用戶會給予最大的支持。但是經(jīng)常在用Apache和Tomcat等這些服務(wù)器時,你總感覺還是不清楚他們之間有什么關(guān)系,在用Tomcat的時候總出現(xiàn)Apache,總感到迷惑,到底誰是主誰是次,因此特意在網(wǎng)上查詢了一些這方面的資料,總結(jié)了一下。 
  解析一: 
  Apache支持靜態(tài)頁,Tomcat支持動態(tài)的,比如Servlet等, 
  一般使用Apache+Tomcat的話,Apache只是作為一個轉(zhuǎn)發(fā),對JSP的處理是由Tomcat來處理的。 
  Apche可以支持PHPcgiperl,但是要使用Java的話,你需要Tomcat在Apache后臺支撐,將Java請求由Apache轉(zhuǎn)發(fā)給Tomcat處理。 
  Apache是Web服務(wù)器,Tomcat是應(yīng)用(Java)服務(wù)器,它只是一個Servlet(JSP也翻譯成Servlet)容器,可以認(rèn)為是Apache的擴展,但是可以獨立于Apache運行。 
  

        這兩個有以下幾點可以比較的: 
  ◆兩者都是Apache組織開發(fā)的 
  ◆兩者都有HTTP服務(wù)的功能 
  ◆兩者都是免費的 

  不同點: 

  Apache是專門用了提供HTTP服務(wù)的,以及相關(guān)配置的(例如虛擬主機、URL轉(zhuǎn)發(fā)等等) 
  Tomcat是Apache組織在符合Java EE的JSP、Servlet標(biāo)準(zhǔn)下開發(fā)的一個JSP服務(wù)器. 
         Runtime r=Runtime.getRuntime();   Process p=null;   try   {   p=r.exec("notepad");   }   catch(Exception ex)   {   System.out.println("fffff");   }    
  

         解析二: 
  Apache是一個Web服務(wù)器環(huán)境程序,啟用他可以作為Web服務(wù)器使用,不過只支持靜態(tài)網(wǎng)頁 如(ASP,PHP,CGI,JSP)等動態(tài)網(wǎng)頁的就不行。 
  如果要在Apache環(huán)境下運行JSP的話就需要一個解釋器來執(zhí)行JSP網(wǎng)頁,而這個JSP解釋器就是Tomcat,為什么還要JDK呢?因為JSP需要連接數(shù)據(jù)庫的話就要jdk來提供連接數(shù)據(jù)庫的驅(qū)程,所以要運行JSP的Web服務(wù)器平臺就需要Apache+Tomcat+JDK。 
  整合的好處是: 
  ◆如果客戶端請求的是靜態(tài)頁面,則只需要Apache服務(wù)器響應(yīng)請求。 
  ◆如果客戶端請求動態(tài)頁面,則是Tomcat服務(wù)器響應(yīng)請求。 
  ◆因為JSP是服務(wù)器端解釋代碼的,這樣整合就可以減少Tomcat的服務(wù)開銷。 
  C是一個結(jié)構(gòu)化語言,如譚老爺子所說:它的重點在于算法和數(shù)據(jù)結(jié)構(gòu)。C程序的設(shè)計首要考慮的是如何通過一個過程,對輸入(或環(huán)境條件)進行運算處理得到輸出(或?qū)崿F(xiàn)過程(事務(wù))控制),而對于C++,首要考慮的是如何構(gòu)造一個對象模型,讓這個模型能夠契合與之對應(yīng)的問題域,這樣就可以通過獲取對象的狀態(tài)信息得到輸出或?qū)崿F(xiàn)過程(事務(wù))控制。 

  解析三: 
  Apache:側(cè)重于HTTP Server 
  Tomcat:側(cè)重于Servlet引擎,如果以Standalone方式運行,功能上與Apache等效 , 支持JSP,但對靜態(tài)網(wǎng)頁不太理想; 
  Apache是Web服務(wù)器,Tomcat是應(yīng)用(Java)服務(wù)器,它只是一個Servlet(JSP也翻譯成Servlet)容器,可以認(rèn)為是Apache的擴展,但是可以獨立于Apache運行。

 

    PS:至于為什么要集成Tomcat和Apache,原因是

    Tomcat的最主要的功能是提供Servlet/JSP容器,盡管它也可以作為獨立的Java Web 服

務(wù)器,但在對靜態(tài)資源(如HTML 文件或圖像文件)的處理速度,以及提供的Web 服務(wù)器

管理功能方面Tomcat都不如其他專業(yè)的HTTP服務(wù)器,如IIS和Apache服務(wù)器。

因此在實際應(yīng)用中,常常把Tomcat 與其他HTTP 服務(wù)器集成。對于不支持Servlet/JSP

的HTTP服務(wù)器,可以通過Tomcat服務(wù)器來運行Servlet/JSP組件。

當(dāng)Tomcat與其他HTTP服務(wù)器集成時,Tomcat服務(wù)器的工作模式通常為進程外的Servlet

容器,Tomcat 服務(wù)器與其他HTTP 服務(wù)器之間通過專門的插件來通信。


  1.         1)獨立的Servlet容器
            在這種模式下,Tomcat可以作為獨立的Java Web服務(wù)器,Servlet容器作為構(gòu)成Web服務(wù)器的一部分而存在。獨立的Servlet容器是Tomcat的默認(rèn)模式
  2.         
  3.          2)進程內(nèi)的Servlet容器
            Servlet容器分為Web服務(wù)器插件和Java容器兩部分。Web服務(wù)器插件在其他Web服務(wù)器內(nèi)部地址空間打開一個Java虛擬機,Java容器在此JVM中運行Servlet。如有客戶端發(fā)出調(diào)用Servlet的請求,插件獲得對此請求的控制并將它傳遞給Java容器。進程內(nèi)Servlet容器對于單進程、多進程的服務(wù)器非常適合,可以提供較高的運行速度,單缺乏伸縮性。  
  4.         
  5.         3)進程外的Servlet容器
            Servlet容器分為Web服務(wù)器插件和java容器兩部分。Web服務(wù)器插件在其他Web服務(wù)器的外部地址空間打開一個JVM。java容器在此JVM中運行Servlet。如有客戶端發(fā)出調(diào)用Servlet的請求,插件獲得對此請求的控制并將它傳遞給java容器。進程外Servlet容器對客戶請求的響應(yīng)速度不如進程內(nèi)容器,但進程外容器具有更好的伸縮性和穩(wěn)定性。


         Tomcat 既可作為獨立的Servlet容器,也可和其他的Web服務(wù)器集成,作為進程內(nèi)的Servlet容器或者進程外的Servlet容器。


         在說Tomcat和Jetty的區(qū)別:

          Tomcat 服務(wù)器是一個免費的開放源代碼的Web 應(yīng)用服務(wù)器(主要用于解析servlet/JSP,同時具備http服務(wù)),技術(shù)先進、性能穩(wěn)定,而且免費,因而深受Java 愛好者的喜愛并得到了部分軟件開發(fā)商的認(rèn)可。其運行時占用的系統(tǒng)資源小,擴展性好,且支持負(fù)載平衡與郵件服務(wù)等開發(fā)應(yīng)用系統(tǒng)常用的功能。作為一個小型的輕量級應(yīng)用服務(wù)器,Tomcat在中小型系統(tǒng)和并發(fā)訪問用戶不是很多的場合下被普遍使用,成為目前比較流行的Web 應(yīng)用服務(wù)器。
  而Jetty采用業(yè)界最優(yōu)的開源Java Web引擎, 將Java社區(qū)中下載量最大,用戶數(shù)最多,標(biāo)準(zhǔn)支持最完備的Tomcat內(nèi)核作為其Servlet容器引擎,并加以審核和調(diào)優(yōu)。單純的Tomcat性能有限,在很多地方表現(xiàn)有欠缺,如活動連接支持、靜態(tài)內(nèi)容、大文件和HTTPS等。除了性能問題,Tomcat的另一大缺點是它是一個受限的集成平臺,僅能運行Java應(yīng)用程序。企業(yè)在使用時Tomcat,往往還需同時部署Apache Web Server以與之整合。此配置較為繁瑣,且不能保證性能的優(yōu)越性。
  Jetty通過使用APR和Tomcat本地技術(shù)的混合模型來解決Tomcat的諸多不足?;旌霞夹g(shù)模型從最新的操作系統(tǒng)技術(shù)里提供了最好的線程和事件處理。結(jié)果,Jetty達到了可擴展性,性能參數(shù)匹配甚至超越了本地Apache HTTP服務(wù)器或者IIS。譬如Jetty能夠提供數(shù)據(jù)庫連接池服務(wù),不僅支持 JSP 等 Java 技術(shù),同時還支持其他 Web 技術(shù)的集成,譬如 PHP、.NET 兩大陣營。
  標(biāo)準(zhǔn)化是減小技術(shù)依賴風(fēng)險,保護投資最好的方式。Jerry率先支持全系列JEE Web標(biāo)準(zhǔn),從根本上保證了應(yīng)用“一次開發(fā),到處運行”的特點,使應(yīng)用成品能方便地在Jetty和其他Java Web服務(wù)器之間輕易遷移。

       相同點:

       都是web容器,作用基本一致,都作為jboss的集成的web容器(有tomcat版的jboss、也有jetty版的jboss,即4.0以后的版本)

       區(qū)別:

       實現(xiàn)機制稍有不同,Jetty性能更優(yōu)

      

         Nginx / Apache / lighttpd 的區(qū)別:


 

1. lighttpd

 

       Lighttpd是一個具有非常低的內(nèi)存開銷,cpu占用率低,效能好,以及豐富的模塊等特點。lighttpd是眾多OpenSource輕量級的web server中較為優(yōu)秀的一個。支持FastCGI, CGI, Auth, 輸出壓縮(output compress), URL重寫, Alias等重要功能。

Lighttpd使用fastcgi方式運行php,它會使用很少的PHP進程響應(yīng)很大的并發(fā)量。

Fastcgi的優(yōu)點在于:

· 從穩(wěn)定性上看, fastcgi是以獨立的進程池運行來cgi,單獨一個進程死掉,系統(tǒng)可以很輕易的丟棄,然后重新分配新的進程來運行邏輯.

· 從安全性上看, fastcgi和宿主的server完全獨立, fastcgi怎么down也不會把server搞垮,

· 從性能上看, fastcgi把動態(tài)邏輯的處理從server中分離出來, 大負(fù)荷的IO處理還是留給宿主server, 這樣宿主server可以一心一意作IO,對于一個普通的動態(tài)網(wǎng)頁來說, 邏輯處理可能只有一小部分, 大量的圖片等靜態(tài)IO處理完全不需要邏輯程序的參與(注1)

· 從擴展性上講, fastcgi是一個中立的技術(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 是一個完全通過internet進行運作的非盈利機構(gòu), 由它來決定apache web服務(wù)器的標(biāo)準(zhǔn)發(fā)行版中應(yīng)該包含哪些內(nèi)容. 準(zhǔn)許任何人修改隱錯, 提供新的特征和將它移植到新的平臺上, 以及其它的工作. 當(dāng)新的代碼被提交給apache group時, 該團體審核它的具體內(nèi)容, 進行測試, 如果認(rèn)為滿意, 該代碼就會被集成到apache的主要發(fā)行版中.

apache 的特性:

1) 幾乎可以運行在所有的計算機平臺上.

2) 支持最新的http/1.1協(xié)議

3) 簡單而且強有力的基于文件的配置(httpd.conf).

4) 支持通用網(wǎng)關(guān)接口(cgi)

5) 支持虛擬主機.

6) 支持http認(rèn)證.

7) 集成perl.

8) 集成的代理服務(wù)器

9) 可以通過web瀏覽器監(jiān)視服務(wù)器的狀態(tài), 可以自定義日志.

10) 支持服務(wù)器端包含命令(ssi).

11) 支持安全socket層(ssl).

12) 具有用戶會話過程的跟蹤能力.

13) 支持fastcgi

14) 支持java servlets

 

3.nginx

 

Nginx是俄羅斯人編寫的十分輕量級的HTTP服務(wù)器,Nginx,它的發(fā)音為“engine X”, 是一個高性能的HTTP和反向代理服務(wù)器,同時也是一個IMAP/POP3/SMTP 代理服務(wù)器.Nginx是由俄羅斯人 Igor Sysoev為俄羅斯訪問量第二的 Rambler.ru站點開發(fā).

Nginx以事件驅(qū)動的方式編寫,所以有非常好的性能,同時也是一個非常高效的反向代理、負(fù)載平衡。其擁有匹配 Lighttpd的性能,同時還沒有Lighttpd的內(nèi)存泄漏問題,而且Lighttpd的mod_proxy也有一些問題并且很久沒有更新。但是Nginx并不支持cgi方式運行,原因是可以減少因此帶來的一些程序上的漏洞。所以必須使用FastCGI方式來執(zhí)行PHP程序。

nginx做為HTTP服務(wù)器,有以下幾項基本特性:

處理靜態(tài)文件,索引文件以及自動索引;打開文件描述符緩沖.

無緩存的反向代理加速,簡單的負(fù)載均衡和容錯.

FastCGI,簡單的負(fù)載均衡和容錯.

模塊化的結(jié)構(gòu)。包括gzipping, byte ranges, chunked responses,以及 SSI-filter等filter。如果由FastCGI或其它代理服務(wù)器處理單頁中存在的多個SSI,則這項處理可以并行運行,而不需要相互等待。

Nginx專為性能優(yōu)化而開發(fā),性能是其最重要的考量,實現(xiàn)上非常注重效率。它支持內(nèi)核Poll模型,能經(jīng)受高負(fù)載的考驗,有報告表明能支持高達 50,000個并發(fā)連接數(shù)。

Nginx具有很高的穩(wěn)定性。其它HTTP服務(wù)器,當(dāng)遇到訪問的峰值,或者有人惡意發(fā)起慢速連接時,也很可能會導(dǎo)致服務(wù)器物理內(nèi)存耗盡頻繁交換,失去響應(yīng),只能重啟服務(wù)器。例如當(dāng)前apache一旦上到200個以上進程,web響應(yīng)速度就明顯非常緩慢了。而Nginx采取了分階段資源分配技術(shù),使得它的CPU與內(nèi)存占用率非常低。nginx官方表示保持10,000個沒有活動的連接,它只占2.5M內(nèi)存,所以類似DOS這樣的攻擊對nginx來說基本上是毫無用處的。就穩(wěn)定性而言,nginx比lighthttpd更勝一籌。

Nginx支持熱部署。它的啟動特別容易, 并且?guī)缀蹩梢宰龅?*24不間斷運行,即使運行數(shù)個月也不需要重新啟動。你還能夠在不間斷服務(wù)的情況下,對軟件版本進行進行升級。

二.3種WEB服務(wù)器的比較:

server

Apache

Nginx

Lighttpd

Proxy代理

非常好

非常好

一般

Rewriter

非常好

一般

Fcgi

不好

非常好

熱部署

不支持

支持

不支持

系統(tǒng)壓力比較

很大

很小

比較小

穩(wěn)定性

非常好

不好

安全性

一般

一般

技術(shù)支持

非常好

很少

一般

靜態(tài)文件處理

一般

非常好

Vhosts虛擬主機

支持

不支持

支持

反向代理

一般

非常好

一般

Session sticky

支持

不支持

不支持

注:在相對比較大的網(wǎng)站,節(jié)約下來的服務(wù)器成本無疑是客觀的。而有些小型網(wǎng)站往往服務(wù)器不多,如果采用 Apache 這類傳統(tǒng) Web 服務(wù)器,似乎也還能撐過去。但有其很明顯的弊端: Apache 在處理流量爆發(fā)的時候(比如爬蟲或者是 Digg 效應(yīng)) 很容易過載,這樣的情況下采用 Nginx 最為合適。

建議方案:

Apache 后臺服務(wù)器(主要處理php及一些功能請求 如:中文url)

Nginx 前端服務(wù)器(利用它占用系統(tǒng)資源少得優(yōu)勢來處理靜態(tài)頁面大量請求)

Lighttpd 圖片服務(wù)器

總體來說,隨著nginx功能得完善將使他成為今后web server得主流。

三.性能測試:

將分別測試3種軟件在對動態(tài)頁面和靜態(tài)頁面請求及并發(fā)時的響應(yīng)時間

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)錯誤丟包

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 動態(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

在請求到4840時測試測試程序死掉

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)站W(wǎng)EB服務(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



        上面說了那么多,可以看出,其實

Apache / Nginx / lighttpd 是一類,都是專用的WEB服務(wù)器,Tomcat / Jetty 是一類,是servlet/jsp應(yīng)用服務(wù)器+WEB服務(wù)器 ,Jboss則是一個大框架,也是應(yīng)用服務(wù)器 + WEB服務(wù)器,但是Tomcat 或則Jetty 都是它的一部分

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    国产成人精品一区二三区在线观看| 精品国产一区二区欧美| 日韩国产亚洲一区二区三区| 欧美一区二区三区在线播放| 国产视频一区二区三区四区| 欧美日不卡无在线一区| 欧美自拍系列精品在线| 国产精品欧美激情在线观看| 日韩av欧美中文字幕| 妻子的新妈妈中文字幕| 国产日本欧美特黄在线观看| 欧美不雅视频午夜福利| 午夜国产福利在线播放| 午夜亚洲精品理论片在线观看| 婷婷色国产精品视频一区| 免费观看一级欧美大片| 成年男女午夜久久久精品| 好吊色欧美一区二区三区顽频| av免费视屏在线观看| 欧美国产在线观看精品| 欧美日韩一级aa大片| 中文字幕乱码免费人妻av| 微拍一区二区三区福利| 免费亚洲黄色在线观看| 午夜视频成人在线观看| 国产精品亚洲综合天堂夜夜| 亚洲清纯一区二区三区| 欧美乱码精品一区二区三| 欧洲日本亚洲一区二区| 老外那个很粗大做起来很爽| 三级高清有码在线观看| 91午夜少妇极品福利| 亚洲欧美日本国产有色| 亚洲精品小视频在线观看| 东北老熟妇全程露脸被内射| 高清国产日韩欧美熟女| 亚洲精品中文字幕一二三| 国产肥女老熟女激情视频一区| 亚洲一级二级三级精品| 香蕉久久夜色精品国产尤物| 少妇成人精品一区二区|