nginx/tomcat/apache的區(qū)別
Apache
Apache是一個模塊化的服務(wù)器贞间,可以運行在幾乎所有的計算機平臺上挠唆,屬于應(yīng)用服務(wù)器
缺點
配置相對復雜处窥,而且不使用腳本,模塊就無法支持動態(tài)頁面
優(yōu)點
支持模塊多玄组,性能穩(wěn)定滔驾,由于本身是靜態(tài)解析,所以適合處理靜態(tài)文件(HTML俄讹,圖片等)哆致,也可以通過擴展腳本,模塊等支持動態(tài)頁面
Tomcat
Tomcat是應(yīng)用服務(wù)器患膛,并且只是一個Servlet容器
缺點
基本上只能做java服務(wù)器
優(yōu)點
處理動態(tài)請求摊阀,是編譯Servlet的容器
Nginx
Nginx是一款HTTP和代理服務(wù)器,Nginx常用作靜態(tài)內(nèi)容服務(wù)和代理服務(wù)器,將外來請求轉(zhuǎn)發(fā)給應(yīng)用服務(wù)(tomcat胞此,django)臣咖。
缺點
只適合靜態(tài)和反向代理
優(yōu)點
負載均衡,反向代理漱牵,動靜分離夺蛇,靜態(tài)請求可以直接通過Nginx處理,而且處理效率比Apache高酣胀,動態(tài)請求才需要通過轉(zhuǎn)發(fā)到Tomcat處理
總結(jié)
Apache/Nginx應(yīng)該叫做Http Server
而tomcat則是一個APPlication Server蚊惯,(java項目 fhadmin.cn)準確來說應(yīng)該是Servlet/JSP應(yīng)用的容器。
HttpServer
一個HttpServer關(guān)心的是HTTP協(xié)議層面的傳輸和訪問控制灵临,所以在
Apache/Nginx上可以看到代理截型,負載均衡等,客戶端通過HTTP Server訪問服務(wù)器上存儲的資源(HTML文件儒溉,圖片文件等等)
應(yīng)用服務(wù)器
就是執(zhí)行應(yīng)用的容器宦焦,首先需要支持開發(fā)語言的Runtime(對于Tomcat來說,就是Java)顿涣。其次需要支持應(yīng)用相關(guān)的規(guī)范波闹,例如類庫,安全方面的特性涛碑。對于tomcat來說就是需要提供JSP/Sevlet運行需要的標準類庫等精堕。
為了方便,應(yīng)用服務(wù)器往往也會集成 HTTP Server 的功能蒲障,但是不如專業(yè)的 HTTP Server 那么強大歹篓,所以應(yīng)用服務(wù)器往往是運行在 HTTP Server 的背后,執(zhí)行應(yīng)用揉阎,將動態(tài)的內(nèi)容轉(zhuǎn)化為靜態(tài)的內(nèi)容之后庄撮,通過 HTTP Server 分發(fā)到客戶端。