tomcat
Tomcat是Apache 軟件基金會(huì)(Apache Software Foundation)的Jakarta 項(xiàng)目中的一個(gè)核心項(xiàng)目,由Apache、Sun 和其他一些公司及個(gè)人共同開(kāi)發(fā)而成。由于有了Sun 的參與和支持,最新的Servlet 和JSP 規(guī)范總是能在Tomcat 中得到體現(xiàn),Tomcat 5支持最新的Servlet 2.4 和JSP 2.0 規(guī)范。因?yàn)門(mén)omcat 技術(shù)先進(jìn)、性能穩(wěn)定,而且免費(fèi),因而深受Java 愛(ài)好者的喜愛(ài)并得到了部分軟件開(kāi)發(fā)商的認(rèn)可,成為目前比較流行的Web 應(yīng)用服務(wù)器。
Tomcat 服務(wù)器是一個(gè)免費(fèi)的開(kāi)放源代碼的Web 應(yīng)用服務(wù)器,屬于輕量級(jí)應(yīng)用服務(wù)器,在中小型系統(tǒng)和并發(fā)訪問(wèn)用戶不是很多的場(chǎng)合下被普遍使用,是開(kāi)發(fā)和調(diào)試JSP 程序的首選。對(duì)于一個(gè)初學(xué)者來(lái)說(shuō),可以這樣認(rèn)為,當(dāng)在一臺(tái)機(jī)器上配置好Apache 服務(wù)器,可利用它響應(yīng)HTML(標(biāo)準(zhǔn)通用標(biāo)記語(yǔ)言下的一個(gè)應(yīng)用)頁(yè)面的訪問(wèn)請(qǐng)求。實(shí)際上Tomcat是Apache 服務(wù)器的擴(kuò)展,但運(yùn)行時(shí)它是獨(dú)立運(yùn)行的,所以當(dāng)你運(yùn)行tomcat 時(shí),它實(shí)際上作為一個(gè)與Apache 獨(dú)立的進(jìn)程單獨(dú)運(yùn)行的。
訣竅是,當(dāng)配置正確時(shí),Apache 為HTML頁(yè)面服務(wù),而Tomcat 實(shí)際上運(yùn)行JSP 頁(yè)面和Servlet。另外,Tomcat和IIS等Web服務(wù)器一樣,具有處理HTML頁(yè)面的功能,另外它還是一個(gè)Servlet和JSP容器,獨(dú)立的Servlet容器是Tomcat的默認(rèn)模式。不過(guò),Tomcat處理靜態(tài)HTML的能力不如Apache服務(wù)器。目前Tomcat最新版本為9.0。
nginx
Nginx (engine x) 是一個(gè)高性能的HTTP和反向代理服務(wù)器,也是一個(gè)IMAP/POP3/SMTP服務(wù)器。Nginx是由伊戈?duì)枴べ愃饕驗(yàn)槎砹_斯訪問(wèn)量第二的Rambler.ru站點(diǎn)(俄文:Рамблер)開(kāi)發(fā)的,第一個(gè)公開(kāi)版本0.1.0發(fā)布于2004年10月4日。
其將源代碼以類BSD許可證的形式發(fā)布,因它的穩(wěn)定性、豐富的功能集、示例配置文件和低系統(tǒng)資源的消耗而聞名。2011年6月1日,nginx 1.0.4發(fā)布。
Nginx是一款輕量級(jí)的Web 服務(wù)器/反向代理服務(wù)器及電子郵件(IMAP/POP3)代理服務(wù)器,并在一個(gè)BSD-like 協(xié)議下發(fā)行。其特點(diǎn)是占有內(nèi)存少,并發(fā)能力強(qiáng),事實(shí)上nginx的并發(fā)能力確實(shí)在同類型的網(wǎng)頁(yè)服務(wù)器中表現(xiàn)較好,中國(guó)大陸使用nginx網(wǎng)站用戶有:百度、京東、新浪、網(wǎng)易、騰訊、淘寶等。
nginx和tomcat的區(qū)別
web上的server都叫web server,但是大家分工也有不同的。
nginx常用做靜態(tài)內(nèi)容服務(wù)和代理服務(wù)器(不是你FQ那個(gè)代理),直面外來(lái)請(qǐng)求轉(zhuǎn)發(fā)給后面的應(yīng)用服務(wù)(tomcat,django什么的),tomcat更多用來(lái)做做一個(gè)應(yīng)用容器,讓java web app跑在里面的東西,對(duì)應(yīng)同級(jí)別的有jboss,jetty等東西。
但是事無(wú)絕對(duì),nginx也可以通過(guò)模塊開(kāi)發(fā)來(lái)提供應(yīng)用功能,tomcat也可以直接提供http服務(wù),通常用在內(nèi)網(wǎng)和不需要流控等小型服務(wù)的場(chǎng)景。
apache用的越來(lái)越少了,大體上和nginx功能重合的更多。
嚴(yán)格的來(lái)說(shuō),Apache/Nginx 應(yīng)該叫做「HTTP Server」;而 Tomcat 則是一個(gè)「Application Server」,或者更準(zhǔn)確的來(lái)說(shuō),是一個(gè)「Servlet/JSP」應(yīng)用的容器(Ruby/Python 等其他語(yǔ)言開(kāi)發(fā)的應(yīng)用也無(wú)法直接運(yùn)行在 Tomcat 上)。
一個(gè) HTTP Server 關(guān)心的是 HTTP 協(xié)議層面的傳輸和訪問(wèn)控制,所以在 Apache/Nginx 上你可以看到代理、負(fù)載均衡等功能。客戶端通過(guò) HTTP Server 訪問(wèn)服務(wù)器上存儲(chǔ)的資源(HTML 文件、圖片文件等等)。通過(guò) CGI 技術(shù),也可以將處理過(guò)的內(nèi)容通過(guò) HTTP Server 分發(fā),但是一個(gè) HTTP Server 始終只是把服務(wù)器上的文件如實(shí)的通過(guò) HTTP 協(xié)議傳輸給客戶端。
而應(yīng)用服務(wù)器,則是一個(gè)應(yīng)用執(zhí)行的容器。它首先需要支持開(kāi)發(fā)語(yǔ)言的 Runtime(對(duì)于 Tomcat 來(lái)說(shuō),就是 Java),保證應(yīng)用能夠在應(yīng)用服務(wù)器上正常運(yùn)行。其次,需要支持應(yīng)用相關(guān)的規(guī)范,例如類庫(kù)、安全方面的特性。對(duì)于 Tomcat 來(lái)說(shuō),就是需要提供 JSP/Sevlet 運(yùn)行需要的標(biāo)準(zhǔn)類庫(kù)、Interface 等。為了方便,應(yīng)用服務(wù)器往往也會(huì)集成 HTTP Server 的功能,但是不如專業(yè)的 HTTP Server 那么強(qiáng)大,所以應(yīng)用服務(wù)器往往是運(yùn)行在 HTTP Server 的背后,執(zhí)行應(yīng)用,將動(dòng)態(tài)的內(nèi)容轉(zhuǎn)化為靜態(tài)的內(nèi)容之后,通過(guò) HTTP Server 分發(fā)到客戶端。
-
服務(wù)器
+關(guān)注
關(guān)注
12文章
9123瀏覽量
85322 -
nginx
+關(guān)注
關(guān)注
0文章
149瀏覽量
12170 -
tomcat
+關(guān)注
關(guān)注
0文章
27瀏覽量
4853
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論