天天看點

Nginx/Tomcat/Apache的優缺點和差別

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 分發到用戶端。