Nginx和Tomcat區別

一、nginx經常使用作靜態內容服務和代理服務器java

  • 直面外來請求轉發給後面的應用服務
  • nginx也能夠經過模塊開發來提供應用功能
  • Apache/Nginx 應該叫作「HTTP Server」

二、tomcat更多用來作作一個應用容器,讓java web app跑在裏面的東nginx

  • 同級別的有jboss,jetty等東西
  • tomcat也能夠直接提供http服務,一般用在內網和不須要流控等小型服務的場景
  •  Tomcat 則是一個「Application Server」
  • 更準確的來講,是一個「Servlet/JSP」應用的容器
  • Ruby/Python 等其餘語言開發的應用也沒法直接運行在 Tomcat 上

三、 HTTP Server 關心的是 HTTP 協議層面的傳輸和訪問控制web

  • 在 Apache/Nginx 上你能夠看到代理、負載均衡等功能
  • 客戶端經過 HTTP Server 訪問服務器上存儲的資源(HTML 文件、圖片文件等等)
  • CGI 技術,也能夠將處理過的內容經過 HTTP Server 分發
  • HTTP Server 始終只是把服務器上的文件如實的經過 HTTP 協議傳輸給客戶端

四、應用服務器,則是一個應用執行的容器tomcat

  • 首先須要支持開發語言的 Runtime(對於 Tomcat 來講,就是 Java)
  • 保證應用可以在應用服務器上正常運行
  • 須要支持應用相關的規範,例如類庫、安全方面的特性

五、爲了方便,應用服務器每每也會集成 HTTP Server 的功能安全

  • 可是不如專業的 HTTP Server 那麼強大
  • 因此應用服務器每每是運行在 HTTP Server 的背後,執行應用
  • 將動態的內容轉化爲靜態的內容以後,經過 HTTP Server 分發到客戶端
相關文章
相關標籤/搜索