1. 程式人生 > >apache,nigix,tomcat區別與優缺點

apache,nigix,tomcat區別與優缺點

我們先來看一下各個伺服器分別是用什麼語言寫的。Apache是用C寫的,Nigix是用C寫的,Tomcat是用Java寫的。

       Tomcat是Apache的拓展,更實質的說是Java應用伺服器,用於處理JSP後臺語言開發的應用,主要用於處理JSP動態網頁。Tomcat 伺服器是一個免費的開放原始碼的Web 應用伺服器(主要用於解析servlet/JSP,同時具備http服務),單純的Tomcat效能有限,在很多地方表現有欠缺,如活動連線支援、靜態內容、大檔案和HTTPS等,因此多數都是Apache+Tomcat+JavaSDK的整合。嚴格的來說,Apache/Nginx 應該叫做「HTTP Server」;而 Tomcat 則是一個「Application Server」,或者更準確的來說,是一個「Servlet/JSP」應用的容器(Ruby/Python 等其他語言開發的應用也無法直接執行在 Tomcat 上)。

對於 Tomcat 來說,就是需要提供 JSP/Sevlet 執行需要的標準類庫、Interface 等。為了方便,應用伺服器往往也會整合 HTTP Server 的功能,但是不如專業的 HTTP Server 那麼強大,所以應用伺服器往往是執行在 HTTP Server 的背後,執行應用,將動態的內容轉化為靜態的內容之後,通過 HTTP Server 分發到客戶端。

       Apache是一個Web伺服器環境程式,啟用它可以作為Web伺服器使用,主要用於處理靜態網頁,比如HTML,HTM等檔案,其與PHP模組結合,也可以解析PHP網頁。但是其不適宜高併發的請求,但是從穩定性來說,比nigix bug少,畢竟是世界上第一大伺服器,發展時間比nigix歷史悠久。

       相對於nigix來說,nigix更適合高併發的請求,而且其配置比Apache簡單,也適合做反向代理。反向代理是指的,伺服器代理網路上的客戶機請求,將請求轉達給內部真實伺服器,然後在返回給Internet客戶端,代理伺服器上面沒有任何網頁資料。反向代理和正向代理沒有衝突,可以在防火牆裝置中同時使用這兩種結合,正向代理可以進行過濾,保護內部網路安全。具體可以參考  https://jingyan.baidu.com/article/f54ae2fcd895b81e93b84973.html ,這裡講的很清楚。nigix來說連線處理是非同步的,萬級的連線對應一個程序,因此對資源的消耗也比較小,更適合作為前端的代理伺服器。比如把客戶端的請求合理的分配給後臺執行應用的伺服器,比如Tomcat等。