Nginx和Tomcat的區別


  web上的server都叫web server,但是具體的分工是不同的。

  Nginx (engine x) 是一個高性能的HTTP和反向代理服務器,也是一個IMAP/POP3/SMTP服務器;直接外來的請求轉發給后面的應用服務(toncat,django...),tomcat更多用來做一個應用容器,讓java web app在其中運行,對應同級別的有jetty、jboss等應用服務。

  嚴格的來說,Apache/Nginx 應該叫做「HTTP Server」;而 Tomcat 則是一個「Application Server」,或者更准確的來說,是一個「Servlet/JSP」應用的容器(Ruby/Python 等其他語言開發的應用也無法直接運行在 Tomcat 上)。

  一個HTTP Server關心的是HTTP協議層面的傳輸和訪問控制,所以在Apache/Nginx上可以看到代理、負載均衡等功能。客戶端通過HTTP Server訪問服務器上存儲的資源(HTML文件、圖片文件等)。通過GIT技術,也可以將處理過的內容通過HTTP Server分發,但是一個HTTP Server始終只是把服務器上的文件如是的通過HTTP協議傳輸給客戶端。

  而應用服務器,則是一個應用執行的容器。它首先需要支持開發語言的 Runtime (對於 Tomcat 來說,就是 Java),保證應用能夠在應用服務器上正常運行。其次,需要支持應用相關的規范,例如類庫、安全方面的特性。對於 Tomcat 來說,就是需要提供 JSP/Sevlet 運行需要的標准類庫、Interface 等。為了方便,應用服務器往往也會集成 HTTP Server 的功能,但是不如專業的 HTTP Server 那么強大,所以應用服務器往往是運行在 HTTP Server 的背后,執行應用,將動態的內容轉化為靜態的內容之后,通過 HTTP Server 分發到客戶端。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM