在租用美國服務器客戶中不少用戶都使用中都會選擇?Tomcat環(huán)境?那么美國服務器中的的tomcat 與 nginx,apache的區(qū)別是什么?
HTTP服務器本質(zhì)上也是一種應用程序——它通常運行在服務器之上,綁定服務器的IP地址并監(jiān)聽某一個tcp端口來接收并處理HTTP請求,這樣客戶端(一般來說是IE, Firefox,Chrome這樣的瀏覽器)就能夠通過HTTP協(xié)議來獲取服務器上的網(wǎng)頁(HTML格式)、文檔(PDF格式)、音頻(MP4格式)、視頻(MOV格式)等等資源。下圖描述的就是這一過程:
不僅僅是Apache HTTP Server和Nginx,絕大多數(shù)編程語言所包含的類庫中也都實現(xiàn)了簡單的HTTP服務器方便開發(fā)者使用:
HttpServer (Java HTTP Server )
Python SimpleHTTPServer
使用這些類庫能夠非常容易的運行一個HTTP服務器,它們都能夠通過綁定IP地址并監(jiān)聽tcp端口來提供HTTP服務。
Apache Tomcat則是Apache基金會下的另外一個項目,與Apache HTTP Server相比,Tomcat能夠動態(tài)的生成資源并返回到客戶端。Apache HTTP Server和Nginx都能夠?qū)⒛骋粋€文本文件的內(nèi)容通過HTTP協(xié)議返回到客戶端,但是這個文本文件的內(nèi)容是固定的——也就是說無論何時、任何人訪問它得到的內(nèi)容都是完全相同的,這樣的資源我們稱之為靜態(tài)資源。動態(tài)資源則與之相反,在不同的時間、不同的客戶端訪問得到的內(nèi)容是不同的,例如:
包含顯示當前時間的頁面
顯示當前IP地址的頁面
Apache HTTP Server和Nginx本身不支持生成動態(tài)頁面,但它們可以通過其他模塊來支持(例如通過Shell、PHP、Python腳本程序來動態(tài)生成內(nèi)容)。
如果想要使用Java程序來動態(tài)生成資源內(nèi)容,使用這一類HTTP服務器很難做到。Java Servlet技術(shù)以及衍生的Java Server Pages技術(shù)可以讓Java程序也具有處理HTTP請求并且返回內(nèi)容(由程序動態(tài)控制)的能力,Tomcat正是支持運行Servlet/JSP應用程序的容器(Container):
Tomcat運行在JVM之上,它和HTTP服務器一樣,綁定IP地址并監(jiān)聽TCP端口,同時還包含以下指責:
管理Servlet程序的生命周期
將URL映射到指定的Servlet進行處理與Servlet程序合作處理HTTP請求——根據(jù)HTTP請求生HttpServletResponse對象并傳遞給Servlet進行處理,將Servlet中的HttpServletResponse對象生成的內(nèi)容返回給瀏覽器雖然Tomcat也可以認為是HTTP服務器,但通常它仍然會和Nginx配合在一起使用:
動靜態(tài)資源分離——運用Nginx的反向代理功能分發(fā)請求:所有動態(tài)資源的請求交給Tomcat,而靜態(tài)資源的請求(例如圖片、視頻、CSS、JavaScript文件等)則直接由Nginx返回到瀏覽器,這樣能大大減輕Tomcat的壓力。
負載均衡,當業(yè)務壓力增大時,可能一個Tomcat的實例不足以處理,那么這時可以啟動多個Tomcat實例進行水平擴展,而Nginx的負載均衡功能可以把請求通過算法分發(fā)到各個不同的實例進行處理
USA-IDC提供美國服務器租用,性能穩(wěn)定快速,全美最低延遲,全程運維24小時在線,秒級回復,歡迎廣大用戶聯(lián)系24小時在線客服