Apache 、Tomcat、Nginx的區別

來源:互聯網
上載者:User

標籤:Proxy 伺服器   電腦   俄羅斯   engine   

一.定義:

    Apache

   Apache HTTP伺服器是一個模組化的伺服器,可以運行在幾乎所有廣泛使用的電腦平台上。其屬於應用伺服器。Apache支援支援模組多,效能穩定,Apache本身是靜態解析,適合靜態HTML、圖片等,但可以通過擴充指令碼、模組等支援動態網頁面等。

    (Apche可以支援PHPcgiperl,但是要使用Java的話,你需要Tomcat在Apache後台支撐,將Java請求由Apache轉寄給Tomcat處理。)

        缺點:配置相對複雜,自身不支援動態網頁面。

    Tomcat:

   Tomcat是應用(Java)伺服器,它只是一個Servlet(JSP也翻譯成Servlet)容器,可以認為是Apache的擴充,但是可以獨立於Apache運行。

    Nginx

   Nginx是俄羅斯人編寫的十分輕量級的HTTP伺服器,Nginx,它的發音為“engine X”,是一個高效能的HTTP和反向 Proxy伺服器,同時也是一個IMAP/POP3/SMTP Proxy 伺服器。


二:比較

1.Apache與Tomcat的比較

相同點:

兩者都是Apache組織開發的

兩者都有HTTP服務的功能

兩者都是免費的

不同點:

        Apache是專門用了提供HTTP服務的,以及相關配置的(例如虛擬機器主機、URL轉寄等等),而Tomcat是Apache組織在符合Java EE的JSP、Servlet標準下開發的一個JSP伺服器. 

        Apache是一個Web伺服器環境程式,啟用他可以作為Web伺服器使用,不過只支援靜態網頁如(ASP,PHP,CGI,JSP)等動態網頁的就不行。如果要在Apache環境下運行JSP的話就需要一個解譯器來執行JSP網頁,而這個JSP解譯器就是Tomcat。

        Apache:側重於HTTPServer ,Tomcat:側重於Servlet引擎,如果以Standalone方式運行,功能上與Apache等效,支援JSP,但對靜態網頁不太理想;

        Apache是Web伺服器,Tomcat是應用(Java)伺服器,它只是一個Servlet(JSP也翻譯成Servlet)容器,可以認為是Apache的擴充,但是可以獨立於Apache運行。

        實際使用中Apache與Tomcat常常是整合使用:

        如果用戶端請求的是靜態頁面,則只需要Apache伺服器響應請求。

        如果用戶端請求動態網頁面,則是Tomcat伺服器響應請求。

        因為JSP是伺服器端解釋代碼的,這樣整合就可以減少Tomcat的服務開銷。

        可以理解Tomcat為Apache的一種擴充。

2.Nginx與Apache比較

        nginx相對於apache的優點

        輕量級,同樣起web 服務,比apache佔用更少的記憶體及資源 

        抗並發,nginx 處理請求是非同步非阻塞的,而apache 則是阻塞型的,在高並發下nginx 能保持低資源低消耗高效能 

        高度模組化的設計,編寫模組相對簡單 

        提供負載平衡

        社區活躍,各種高效能模組出品迅速

        apache 相對於nginx 的優點

        apache的 rewrite 比nginx 的強大 ;

        支援動態網頁面;

        支援的模組多,基本涵蓋所有應用;

        效能穩定,而nginx相對bug較多。

        兩者優缺點比較

        Nginx 配置簡潔, Apache 複雜 ;

        Nginx 靜態處理效能比 Apache 高 3倍以上 ;

        Apache 對 PHP 支援比較簡單,Nginx 需要配合其他後端用;

        Apache 的組件比 Nginx 多 ;

        apache是同步多進程模型,一個串連對應一個進程;nginx是非同步,多個串連(萬層級)可以對應一個進程;

        nginx處理靜態檔案好,耗費記憶體少;

        動態請求由apache去做,nginx只適合靜態和反向;

        Nginx適合做前端伺服器,負載效能很好;

        Nginx本身就是一個反向 Proxy伺服器 ,且支援負載平衡

總結

        Nginx優點:負載平衡、反向 Proxy、處理靜態檔案優勢。nginx處理靜態請求的速度高於apache;

        Apache優點:相對於Tomcat伺服器來說處理靜態檔案是它的優勢,速度快。Apache是靜態解析,適合靜態HTML、圖片等。

        Tomcat:動態解析容器,處理動態請求,是編譯JSP\Servlet的容器,Nginx有動態分離機制,靜態請求直接就可以通過Nginx處理,動態請求才轉寄請求到後台交由Tomcat進行處理。 

  Apache在處理動態有優勢,Nginx並發性比較好,CPU記憶體佔用低,如果rewrite頻繁,那還是Apache較適合。


本文出自 “技術人生,簡單不簡單” 部落格,請務必保留此出處http://willis.blog.51cto.com/11907152/1852083

Apache 、Tomcat、Nginx的區別

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.