1. 程式人生 > >Apache/Tomcat/JBOSS/Jetty/Nginx區別 與選擇

Apache/Tomcat/JBOSS/Jetty/Nginx區別 與選擇

總結:Apache/Tomcat/JBOSS/Nginx區別 .
1、Apache是Web伺服器,Tomcat是應用(Java)伺服器。Tomcat在中小型系統和併發訪問使用者不是很多的場合下被普遍使用。Apache支援靜態頁,Tomcat支援動態的。
2、Jetty:Tomcat核心作為其Servlet容器引擎,並加以稽核和調優.大中型系統可以應用。能夠提供資料庫連線池服務,還支援其他 Web 技術的整合,譬如PHP、.NET 兩大陣營.
3、JBoss是一個管理EJB的容器和伺服器,但JBoss核心服務不包括支援servlet/JSP的WEB容器,一般與Tomcat或Jetty繫結使用。
4、Nginx是目前效能最高的HTTP伺服器。其特點是佔有記憶體少,併發能力強。Nginx程式碼完全用

C語言從頭寫成。

所以:Apache--Nginx;Tomcat--Jetty;JBoss。這三組可以組合了。

具體描述:

一、Apache+Tomcat
Apache支援靜態頁,Tomcat支援動態的,比如Servlet等,
  一般使用Apache+Tomcat的話,Apache只是作為一個轉發,對JSP的處理是由Tomcat來處理的。
Apche可以支援PHPcgiperl,但是要使用Java的話,你需要Tomcat在Apache後臺支撐,將Java請求由Apache轉發給Tomcat處理。
Apache是Web伺服器,Tomcat是應用(Java)伺服器,它只是一個Servlet(JSP也翻譯成Servlet)容器,可以認為是Apache的擴充套件,但是可以獨立於Apache執行。

這兩個有以下幾點可以比較的:
◆兩者都是Apache組織開發的
◆兩者都有HTTP服務的功能
◆兩者都是免費的
  不同點:
Apache是專門用了提供HTTP服務的,以及相關配置的(例如虛擬主機、URL轉發等等)
Tomcat是符合Java EE的JSP、Servlet標準下開發的一個JSP伺服器:Tomcat在中小型系統和併發訪問使用者不是很多的場合下被普遍使用。

二、Jetty

而Jetty採用業界最優的開源java Web引擎,將Java社群中下載量最大,使用者數最多,標準支援最完備的Tomcat核心作為其Servlet容器引擎,並加以稽核和調優。單純的Tomcat效能有限,在很多地方表現有欠缺,如活動連線支援、靜態內容、大檔案和HTTPS等。除了效能問題,Tomcat的另一大缺點是它是一個受限的整合平臺,僅能執行Java應用程式。企業在使用時Tomcat,往往還需同時部署Apache WebServer以與之整合。此配置較為繁瑣,且不能保證效能的優越性。
Jetty通過使用APR和Tomcat本地技術的混合模型來解決Tomcat的諸多不足。混合技術模型從最新的

作業系統技術裡提供了最好的執行緒和事件處理。結果,Jetty達到了可擴充套件性,效能引數匹配甚至超越了本地Apache HTTP伺服器或者IIS。譬如Jetty能夠提供資料庫連線池服務,不僅支援 JSP 等 Java 技術,同時還支援其他 Web 技術的整合,譬如php、.NET 兩大陣營。

三、Nginx
Nginx具有很高的穩定性。其它HTTP伺服器,當遇到訪問的峰值,或者有人惡意發起慢速連線時,也很可能會導致伺服器實體記憶體耗盡頻繁交換,失去響應,只能重啟伺服器。例如當前apache一旦上到200個以上程序,web響應速度就明顯非常緩慢了。而Nginx採取了分階段資源分配技術,使得它的CPU與記憶體佔用率非常低。nginx官方表示保持10,000個沒有活動的連線,它只佔2.5M記憶體,所以類似DOS這樣的攻擊對nginx來說基本上是毫無用處的。就穩定性而言,nginx比lighthttpd更勝一籌。

四、JBoss

JBoss一個基於J2EE的開放原始碼的應用伺服器.JBoss是一個管理EJB的容器和伺服器,但JBoss核心服務不包括支援servlet/JSP的WEB容器,一般與Tomcat或Jetty繫結使用。

JBoss與Web伺服器在同一個Java虛擬機器中執行  JBoss執行後後臺管理介面,Servlet呼叫EJB不經過網路,從而大大提高執行效率,提升安全效能。

Jetty和Tomcat為目前全球範圍內最著名的兩款開源的webserver/servlet容器。由於它們的實現都遵循Java Servlet規範,一個Java Web應用部署於兩款容器的任意一個皆可。但選擇哪個更優?也許這得看場景。 

近期很多人關注Jetty,也許主要是因為GAE放棄了Tomcat而選擇了Jetty。於是,以很直接的想法,Jetty更符合GAE的需求、即雲環境的需求,亦分散式環境的需求。 那Jetty與Tomcat比較,有哪差異呢? 自己簡單做了些調研,也請救了熟悉Tomcat和Jetty的朋友和師兄,得出以下結論:

    1)Jetty更輕量級。這是相對Tomcat而言的。

    由於Tomcat除了遵循Java Servlet規範之外,自身還擴充套件了大量JEE特性以滿足企業級應用的需求,所以Tomcat是較重量級的,而且配置較Jetty亦複雜許多。但對於大量普通網際網路應用而言,並不需要用到Tomcat其他高階特性,所以在這種情況下,使用Tomcat是很浪費資源的。這種劣勢放在分散式環境下,更是明顯。換成Jetty,每個應用伺服器省下那幾兆記憶體,對於大的分散式環境則是節省大量資源。而且,Jetty的輕量級也使其在處理高併發細粒度請求的場景下顯得更快速高效。

    2)Jetty更靈活,體現在其可插拔性和可擴充套件性,更易於開發者對Jetty本身進行二次開發,定製一個適合自身需求的Web Server。

    相比之下,重量級的Tomcat原本便支援過多特性,要對其瘦身的成本遠大於豐富Jetty的成本。用自己的理解,即增肥容易減肥難。

    3)然而,當支援大規模企業級應用時,Jetty也許便需要擴充套件,在這場景下Tomcat便是更優的。

    總結:Jetty更滿足公有云的分散式環境的需求,而Tomcat更符合企業級環境。

    GAE放棄了Tomcat,選擇了Jetty,正是因為Jetty的體積和靈活性,Google可以更好地定製一個足夠小的Java Web Server為其GAE服務。      而Tomcat為滿足更多的企業級需求,增加了JEE特性,在服務企業級應用時,它的支援優於Jetty。然而,即使Tomcat效能略優於Jetty,但對於大多非企業級應用而言,配置複雜體積龐大的Tomcat顯得過於重量級。     正因為這個,實驗室的雲平臺實現便是把雲平臺本身的入口網站放在Tomcat內,而云臺託管的Java Web應該是部署在Jetty內的

http://blog.csdn.net/u012468540/article/details/49487365

http://blog.csdn.net/gechengling/article/details/22582591

相關推薦

Apache/Tomcat/JBOSS/Jetty/Nginx區別 選擇

總結:Apache/Tomcat/JBOSS/Nginx區別 . 1、Apache是Web伺服器,Tomcat是應用(Java)伺服器。Tomcat在中小型系統和併發訪問使用者不是很多的場合下被普遍使用。Apache支援靜態頁,Tomcat支援動態的。 2、Jetty:T

Apache/Tomcat/JBOSS/Nginx區別

先說Apache和Tomcat的區別: Apache是世界使用排名第一的Web伺服器軟體。它可以執行在幾乎所有廣泛使用的計算機平臺上,由於其跨平臺和安全性被廣泛使用,是最流行的Web伺服器端軟體之一。  在Apache基金會裡面ApacheServer永遠會被賦予最大的支援,畢竟大兒子最親嘛,而Apac

tomcatJboss,weblogic區別比較

pro strong 機器 命令 很多 控制 win2000 配置服務 電子 本文引用於http://www.cnblogs.com/dim2046/p/5895889.html 一、tomcat Tomcat 服務器是一個免費的開放源代碼的Web 應用服務器,它是A

TomcatNginx區別各自的用途.

nginx常用做靜態內容服務和反向代理伺服器,以及頁面前端高併發伺服器。適合做負載均衡,直面外來請求轉發給後面的應用服務(tomcat什麼的),tomcat更多用來做做一個應用容器,讓java web app跑在裡面的東西。大部分適用於靜態資原始檔的訪問(圖片,檔案) to

JAVA 伺服器系列1:TomcatJboss,Weblogic區別比較

​一、tomcat Tomcat 伺服器是一個免費的開放原始碼的Web 應用伺服器,它是Apache 軟體基金會(Apache Software Foundation)的Jakarta 專案中的一個核心專案,由Apache、Sun 和其他一些公司及個人共同開發而成。由於有了Sun 的參

sql server 2008 r2各個版本的區別選擇

排序。 分析 新的 name 精華 倉庫 CA web應用 下載 轉自:https://blog.csdn.net/kasama1953/article/details/52522921 目前已知的SQL Server 2008 R2的版本有: 企業版、標準版、工作組版

MyISAMInnoDB兩者之間區別選擇,詳細總結,性能對比

執行過程 val 性能問題 全部 marked rain row 演示 也會 1、MyISAM:默認表類型,它是基於傳統的ISAM類型,ISAM是Indexed Sequential Access Method (有索引的順序訪問方法) 的縮寫,它是存儲記錄和文件的標準方法

MyISAMInnoDB兩者之間區別選擇,總結,效能對比

1、MyISAM:預設表型別,它是基於傳統的ISAM型別,ISAM是Indexed Sequential Access Method (有索引的順序訪問方法) 的縮寫,它是儲存記錄和檔案的標準方法。不是事務安全的,而且不支援外來鍵,如果執行大量的select,insert MyISAM比較適合。 2、Inn

Ribbon Nginx 區別使用場景,效能介紹

伺服器端負載均衡 Nginx nginx 是客戶端所有請求統一交給 nginx,由 nginx 進行實現負載均衡請求轉發,屬於伺服器端負載均衡。 既請求由 nginx 伺服器端進行轉發。 客戶端負載均衡 Ribbon Ribbon 是從 eureka 註冊中心伺服器端上獲取服務註

Apache Tomcat 8.5 安全配置高併發優化

https://www.renwole.com/archives/357 通常我們在生產環境中,Tomcat的預設配置顯然不能滿足我們的產品需求,所以很多時候都需要對Tomcat的配置進行調優,以下綜合我自己的經驗來配置 Tomcat 安全與優化情況,如果你有更好的方

TypeInfo和Type的區別選擇

概念  TypeInfo出現於.net framework 4.5之後,這次調整用於區分兩個概念:“reference”和“definition”。 reference is a shallow representation of something definiti

多執行緒多程序的區別選擇

魚還是熊掌:淺談多程序多執行緒的選擇 關於多程序和多執行緒,教科書上最經典的一句話是“程序是資源分配的最小單位,執行緒是CPU排程的最小單位”,這句話應付考試基本上夠了,但如果在工作中遇到類似的選擇問題,那就沒有這麼簡單了,選的不好,會讓你深受其害。 經常在網路上看到有的XDJM問“多程序好

PDO和MySQLi區別選擇

exit 高效 參數綁定 名稱 可讀性 let 分享 你會 round 當用PHP訪問數據庫時,除了PHP自帶的數據庫驅動,我們一般還有兩種比較好的選擇:PDO和MySQLi。 在實際開發過程中要決定選擇哪一種首先要對二者有一個比較全面的了解。 本文就針對他們的不同點進

ApacheNginxTomcat、PHP的區別

linuxapachenginxApache、Nginx、Tomcat、PHP的區別Apache和Nginx算是市面上兩款比較強大的WEB服務軟件。Apache的優點:支持模塊多,功能多運行穩定性強支持PHP模塊,無需安裝其他多余的組件就可以實現.php動態頁面的解析地址重寫功能(rewrite)強大Ngin

常見的Web伺服器、應用伺服器(ApachetomcatjettyNginx)簡介及優缺點總結

介紹各個伺服器前,有必要講一下Apache與Tomcat關係,伺服器間的優缺點也是相比於apache與tomcat而言。 Apache是web伺服器(靜態解析,如HTML),tomcat是java應用伺服器(動態解析,如JSP)Tomcat只是一個servlet(jsp也翻譯成servlet)容

Nginx,Apache,Tomcat區別

        Nginx:一款能承受高併發的HTTP伺服器,非同步的,多個連線(萬級別)可以對應一個程序,進行響應。基於事件驅動模型。         Nginx優點:負載均衡、反向代理、處理靜態檔案優勢。 &

NginxApache解析php檔案的區別

一、Apache是如何解析php檔案的 我們常說的lamp架構是linux、apache、mysql、php,我們知道任何架構或者網站離不開資料庫的支援,那麼php和apache又是如何協同工作的呢? php是apache的一個外掛程式,必須依靠web伺服器才可以執行

jettytomcat區別應用場景

Jetty更滿足公有云的分散式環境的需求,而Tomcat更符合企業級環境 Jetty更符合GAE(Google App Engine, 是 Google 管理的資料中心中用於 WEB 應用程式的開發和託管的平臺) 的需求,  即雲環境的需求,亦分散式環境的需求。  1

apache,nigix,tomcat區別優缺點

我們先來看一下各個伺服器分別是用什麼語言寫的。Apache是用C寫的,Nigix是用C寫的,Tomcat是用Java寫的。        Tomcat是Apache的拓展,更實質的說是Java應用伺服

HAProxyNginx區別

時間 請求 也會 維護 異常 會有 訪問 haproxy 失敗 1)HAProxy對於後端服務器一直在做健康檢測(就算請求沒過來的時候也會做健康檢查):後端機器故障發生在請求還沒到來的時候,haproxy會將這臺故障機切掉,但如果後端機器故障發生在請求到達期間,那麽前端訪問