apache tomcat

apache tomcat

Apache是普通伺服器,本身只支持html即普通網頁。不過可以通過外掛程式支持php,還可以與Tomcat連通(單向Apache連線Tomcat,就是說通過Apache可以訪問Tomcat資源。反之不然)。Apache只支持靜態網頁,但像php,cgi,jsp等動態網頁就需要Tomcat來處理。 Tomcat是由Apache軟體基金會下屬的Jakarta項目開發的一個Servlet容器,按照Sun Microsystems提供的技術規範,實現了對Servlet和JavaServer Page(JSP)的支持,並提供了作為Web伺服器的一些特有功能,如Tomcat管理和控制平台、安全域管理和Tomcat閥等。由於Tomcat本身也內含了一個HTTP伺服器,它也可以被視作一個單獨的Web伺服器。但是,不能將 Tomcat 和 Apache Web 伺服器混淆,Apache Web Server 是一個用 C 語言實現的 HTTP web server;這兩個 HTTP web server 不是捆綁在一起的。Apache Tomcat 包含了一個配置管理工具,也可以通過編輯 XML 格式的配置檔案來進行配置。Apache,nginx,tomcat並稱為網頁服務三劍客,可見其套用度之廣泛。

區別

Apache是web伺服器,Tomcat是套用(java)伺服器,它只是一個servlet容器,是Apache的擴展。 Apache和Tomcat都可以做為獨立的web伺服器來運行,但是Apache不能解釋java程式(jsp,servlet)。

兩者都是一種容器,只不過發布的東西不同:Apache是html容器,功能像IIS一樣;Tomcat是jsp/servlet容器,用於發布jsp及java的,類似的有IBM的websphere、BEA的Weblogic,sun的JRun等等。

打個比方:Apache是一輛卡車,上面可以裝一些東西如html等。但是不能裝水,要裝水必須要有容器(桶),Tomcat就是一個桶(裝像Java這樣的水),而這個桶也可以不放在卡車上。

Apache是世界使用排名第一的Web伺服器。它可以運行在幾乎所有廣泛使用的計算機平台上。

Apache 源於 NCSAhttpd伺服器,經過多次修改,成為世界上最流行的Web伺服器軟體之一。Apache取自“a patchy server”的讀音,意思是充滿補丁的伺服器,因為它是自由軟體,所以不斷有人來為它開發新的功能、新的特性、修改原來的缺陷。Apache的特點是簡單、速度快、性能穩定,並可做代理伺服器來使用。Apache對Linux的支持相當完美。

產品

Apache有多種產品,可以支持SSL技術,支持多個虛擬主機。Apache是以進程為基礎的結構,進程要比執行緒消耗更多的系統開銷,不太適合於多處理器環境,因此,在一個Apache Web站點擴容時,通常是增加伺服器或擴充群集節點而不是增加處理器。到目前為止Apache仍然是世界上用的最多的Web伺服器,市場占有率達60%左右。世界上很多著名的Yahoo!、W3 Consortium、Financial Times等都是Apache的產物,它的成功之處主要在於它的原始碼開放、有一支開放的開發隊伍、支持跨平台的套用(可以運行在幾乎所有的Unix、 Windows、Linux系統平台上)以及它的可移植性等方面。

Apache的誕生極富有戲劇性。當NCSA WWW伺服器項目停頓後,那些使用NCSA WWW伺服器的人們開始交換他們用於該伺服器的補丁程式,他們也很快認識到成立管理這些補丁程式的論壇是必要的。就這樣,誕生了Apache Group,後來這個團體在NCSA的基礎上創建了Apache。如果你準備選擇Web伺服器,毫無疑問Apache是你的最佳選擇。

測評

Tomcat是一個開放原始碼、運行servlet和JSP Web套用軟體的基於Java的Web套用軟體容器。Tomcat Server是根據servlet和JSP規範進行執行的,因此我們就可以說Tomcat Server也實行了Apache-Jakarta規範且比絕大多數商業套用軟體伺服器要好。

Tomcat是Java Servlet 2.2和JavaServer Pages 1.1技術的標準實現,是基於Apache許可證下開發的自由軟體。Tomcat是完全重寫的Servlet API 2.2和JSP 1.1兼容的Servlet/JSP容器。Tomcat使用了JServ的一些代碼,特別是Apache服務適配器。隨著Catalina Servlet引擎的出現,Tomcat第四版號的性能得到提升,使得它成為一個值得考慮的Servlet/JSP容器,因此目前許多WEB伺服器都是採用Tomcat。

**JSP=Java Server Pages (Java伺服器網頁)

**ASP=Active Server Pages (活動伺服器網頁)

**CGI=Common Gateway Interface (通用網關接口)

**J2EE=Java 2 Platform, Enterprise Edition (Java2平台,企業版)

**XML=eXtensible Markup Language (擴展標記語言)

**IIS=Internet Information Server (網際網路信息伺服器)

漏洞

受影響的版本:

•Tomcat 7.0.0 ~ 7.0.20的所有版本

•Tomcat 6.0.0 ~ 6.0.33的所有版本

•Tomcat 5.5.0 ~ 5.5.33的所有版本

•早期的已不再提供支持的版本也可能受影響

Apache Tomcat支持AJP協定,用來通過反向代理到Tomcat的請求和相關的數據,AJP協定的作用是,當一個請求包含請求主體時,一個未經允許的、包含請求主體首部分(或可能所有的)的AJP訊息被傳送到Tomcat。在某些情況下,Tomcat會把這個訊息當作一個新的請求來處理,而不會當作請求主體。這可能導致攻擊者完全控制AJP訊息,允許攻擊者:

•插入已驗證用戶的名字

•插入任何客戶端的IP位址(可能繞過任何客戶端IP位址的過濾)

•導致用戶之間的回響混亂

下面的AJP連線器實現 不會受到影響

•org.apache.jk.server.JkCoyoteHandler (5.5.x - default, 6.0.x - default)

下面的AJP連線器實現 會受到影響

•org.apache.coyote.ajp.AjpProtocol (6.0.x, 7.0.x - default)

•org.apache.coyote.ajp.AjpNioProtocol (7.0.x)

•org.apache.coyote.ajp.AjpAprProtocol (5.5.x, 6.0.x, 7.0.x)

解決措施:

•升級Apache Tomcat到已經修復此問題的版本。

配置反向代理和Tomcat AJP連線器,使用requiredSecret屬性。

使用org.apache.jk.server.JkCoyoteHandler AJP連線器(不適用於 Tomcat 7.0.x)

相關詞條

熱門詞條

聯絡我們