色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

tomcat與nginx

錢衛(wèi)國2年前19瀏覽0評論

tomcat與nginx?

Tomcat與Nginx、Apache的關(guān)系如下圖。由配送中心選擇Apache、Nginx中的某一輛貨車將包裹送給客戶。雖然Apache、Nginx兩輛車的用途是一樣的,仔細(xì)區(qū)分它們兩還是有區(qū)別的,比如:貨物裝載的速度、方式不一樣,Apache有水箱可以直接運送活魚而Nginx沒有。

Tomcat有點像裝活魚的特殊包裝。經(jīng)過特殊包裝打包的活魚就可以通過Nginx和Apache運送到用戶手中。另外,使用Tomcat包含了一種慢速的配送服務(wù),所以配送中心一般都采用Nginx、Apache等配送。

通過上面的比方引申Apache、Nginx、Tomcat的實際用途

Apache全稱Apache HTTP Server,它是Apache軟件基金會的一個開放源碼的網(wǎng)頁伺服服務(wù)器軟件。

Apache支持模塊多,性能穩(wěn)定。Apache本身是靜態(tài)解析(靜態(tài)頁面),適合靜態(tài)的HTML、圖片等,但可以通過擴展腳本、模塊來支持動態(tài)頁面等。Apche可以支持PHP、CGI、Perl,但要使用Java就需要Tomcat,Java請求會通過Apache轉(zhuǎn)發(fā)給Tomcat處理;

Nginx同樣也是一款開源的HTTP Server,它是由俄羅斯人編寫的輕量級HTTP服務(wù)。

Nginx是一個高性能的HTTP和反向代理服務(wù)器,同時也是一個IMAP、POP3、SMTP代理服務(wù)器。Nginx本身不支持生成動態(tài)頁面,很大部分Web服務(wù)器使用Nginx,主要通過Nginx的反向代理來實現(xiàn)負(fù)載均衡器。

Apache、Nginx本質(zhì)上就是一種運用在HTTP服務(wù)器上某種應(yīng)用程序,它們通過綁定服務(wù)器的IP地址并監(jiān)聽某一個TCP端口來接收并處理HTTP請求,這樣用戶(一般通過IE、Chrome、Firefox等發(fā)送請求并顯示內(nèi)容)就能夠通過HTTP協(xié)議來獲取服務(wù)器上的網(wǎng)頁(HTML+CSS樣式)、文檔(PDF、txt、rar等)、音頻、視頻等資源。如下圖:

不僅Apache和Nginx,絕大多數(shù)編程語言所包含的類庫中也可以實現(xiàn)簡單的HTTP服務(wù)供開發(fā)者使用,如:Java HTTP Server、Python SimpleHTTPServer。

Apache和Nginx的對比

Nginx使用異步非阻塞型事件驅(qū)動的方法來處理請求,而Apache則是通過同步阻塞型的方法來處理請求。

Apache接收一個請求后,就會創(chuàng)建一個進程,每個進程內(nèi)單線程。對于一個負(fù)載相對較高的網(wǎng)站來說,256的進程,也就是256個線程。線程處理請求時是同步阻塞模式,會一直等待該請求讀取程序文件(IO)(同步),執(zhí)行業(yè)務(wù)邏輯,返回給客戶端,所有操作完成之后才能處理下一個請求(阻塞)。

如果服務(wù)器已經(jīng)達(dá)到256的極限,那么接下去的訪問就需要排隊。這也就是為什么某些服務(wù)器負(fù)載不高的原因了。

而Ngnix接收一個請求后,不會等待這個請求的文件讀取操作完成之后才接收下一個請求,它不會等待這個請求的后續(xù)的處理結(jié)果。而是會馬上循環(huán)處理下一個請求(不阻塞)。請求的程序文件執(zhí)行完成之后,會主動通知該線程,不用你主動去等待或者輪詢查看(異步)。最后返回給客戶端。

這樣做,每個請求過來就不需要等待很長的時間排隊,而是馬上就能接收,開始進行處理了。等處理完成之后,會主動通知回調(diào)這個線程進行數(shù)據(jù)返回。

基于上述特性Nginx更輕量級,比Apache占用更少的內(nèi)存及資源抗并發(fā),Nginx靜態(tài)處理性能比Apache高3倍以上。在高并發(fā)下Nginx能保持低資源低消耗高性能高度模塊化的設(shè)計。但Apache組件比Nginx多,對PHP的支持比較簡單,Apche的Rewrite也比Nginx強大一些。

Tomcat用于擴充Apache和Nginx的動態(tài)性能

從上面我們知道了Apache和Nginx的優(yōu)勢在于靜態(tài)解析,那么動態(tài)解析就會交給其他模塊處理,如Tomcat。

Tomcat是由Apache軟件基金會旗下Jakarta項目開發(fā)的Servlet容器,實現(xiàn)對Servlet和JavaServer Page(jsp)的支持。Tomcat本身也包含了HTTP服務(wù),也可單做獨立的Web服務(wù),但用的不多。

Tomcat一共設(shè)計了 4 種容器,它們分別為Engine、Host、Context、Wrapper,各個容器組件之間的關(guān)系是由大到小,即父子關(guān)系,它們之間關(guān)系形成一個樹狀的結(jié)構(gòu),它們的實現(xiàn)類都實現(xiàn)了 Container 接口。

總結(jié)

如果Apache、Nginx、Tomcat打一局LOL,Apache和Nginx像是沖在最前面的英雄。而Tomcat攻擊性能弱,它主要負(fù)責(zé)打輔助,奶前面的英雄。

Nginx并發(fā)性好,CPU、內(nèi)存占用低。但如果rewrite頻繁,那還是選擇Apache好一些,Apache在處理動態(tài)請求更有優(yōu)勢。

以上個人淺見,歡迎批評指正。

認(rèn)同我的看法,請點個贊再走,感謝!

喜歡我的,請關(guān)注我,再次感謝!

外部css樣式,tomcat與nginx