nginx/tomcat/apache的區別
Apache
Apache是一個模組化的伺服器,可以執行在幾乎所有的計算機平臺上,屬於應用伺服器
缺點
配置相對複雜,而且不使用指令碼,模組就無法支援動態頁面
優點
支援模組多,效能穩定,由於本身是靜態解析,所以適合處理靜態檔案(HTML,圖片等),也可以透過擴充套件指令碼,模組等支援動態頁面
Tomcat
Tomcat是應用伺服器,並且只是一個Servlet容器
缺點
基本上只能做java伺服器
優點
處理動態請求,是編譯Servlet的容器
Nginx
Nginx是一款HTTP和代理伺服器,Nginx常用作靜態內容服務和代理伺服器,將外來請求轉發給應用服務(tomcat,django)。
缺點
只適合靜態和反向代理
優點
負載均衡,反向代理,動靜分離,靜態請求可以直接透過Nginx處理,而且處理效率比Apache高,動態請求才需要透過轉發到Tomcat處理
總結
Apache/Nginx應該叫做Http Server
而tomcat則是一個APPlication Server,(java專案 fhadmin.cn)準確來說應該是Servlet/JSP應用的容器。
HttpServer
一個HttpServer關心的是HTTP協議層面的傳輸和訪問控制,所以在
Apache/Nginx上可以看到代理,負載均衡等,客戶端透過HTTP Server訪問伺服器上儲存的資源(HTML檔案,圖片檔案等等)
應用伺服器
就是執行應用的容器,首先需要支援開發語言的Runtime(對於Tomcat來說,就是Java)。其次需要支援應用相關的規範,例如類庫,安全方面的特性。對於tomcat來說就是需要提供JSP/Sevlet執行需要的標準類庫等。
為了方便,應用伺服器往往也會整合 HTTP Server 的功能,但是不如專業的 HTTP Server 那麼強大,所以應用伺服器往往是執行在 HTTP Server 的背後,執行應用,將動態的內容轉化為靜態的內容之後,透過 HTTP Server 分發到客戶端。
本作品採用《CC 協議》,轉載必須註明作者和本文連結