nginx tomcat apache的區別

apache,指的應該是apache軟件基金會下的一個項目——apache http server project;

nginx tomcat apache的區別

nginx同樣也是一款開源的HTTP服務器軟件(當然它也可以作為郵件代理服務器、通用的TCP代理服務器)。

HTTP服務器本質上也是一種應用程序——它通常運行在服務器之上,綁定服務器的IP地址并監聽某一個tcp端口來接收并處理HTTP請求,這樣客戶端(一般來說是IE, firefoxchrome這樣的瀏覽器)就能夠通過HTTP協議來獲取服務器上的網頁(html格式)、文檔(PDF格式)、音頻(MP4格式)、視頻(MOV格式)等等資源。

Apache tomcat則是Apache基金會下的另外一個項目,與Apache HTTP Server相比,Tomcat能夠動態的生成資源并返回到客戶端。

Apache HTTP Server和Nginx都能夠將某一個文本文件的內容通過HTTP協議返回到客戶端,但是這個文本文件的內容是固定的——也就是說無論何時、任何人訪問它得到的內容都是完全相同的,這樣的資源我們稱之為靜態資源。

動態資源則與之相反,在不同的時間、不同的客戶端訪問得到的內容是不同的。

例如:包含顯示當前時間的頁面顯示當前IP地址的頁面Apache HTTP Server和Nginx本身不支持生成動態頁面,但它們可以通過其他模塊來支持(例如通過Shell、phppython腳本程序來動態生成內容)。

如果想要使用Java程序來動態生成資源內容,使用這一類HTTP服務器很難做到。

Java servlet技術以及衍生的Java Server Pages技術可以讓Java程序也具有處理HTTP請求并且返回內容(由程序動態控制)的能力,Tomcat正是支持運行Servlet/JSP應用程序的容器(Container);

Tomcat運行在jvm之上,它和HTTP服務器一樣,綁定IP地址并監聽TCP端口,同時還包含以下指責:

管理Servlet程序的生命周期將URL映射到指定的Servlet進行處理與Servlet程序合作處理HTTP請求——根據HTTP請求生成HttpServletResponse對象并傳遞給Servlet進行處理,將Servlet中的HttpServletResponse對象生成的內容返回給瀏覽器。

雖然Tomcat也可以認為是HTTP服務器,但通常它仍然會和Nginx配合在一起使用:

(1)動靜態資源分離——運用Nginx的反向代理功能分發請求:所有動態資源的請求交給Tomcat,而靜態資源的請求(例如圖片、視頻、cssJavaScript文件等)則直接由Nginx返回到瀏覽器,這樣能大大減輕Tomcat的壓力。

(2)負載均衡,當業務壓力增大時,可能一個Tomcat的實例不足以處理,那么這時可以啟動多個Tomcat實例進行水平擴展,而Nginx的負載均衡功能可以把請求通過算法分發到各個不同的實例進行處理

更多Nginx相關技術文章,請訪問Nginx使用教程欄目進行學習!?

? 版權聲明
THE END
喜歡就支持一下吧
點贊15 分享