Apache 和 Nginx的區別與比較:
Apache:
Apache HTTP Server(簡稱apache)是Apache軟件基金會的一個開放源碼的網頁服務器,可以在大多數計算機操作系統中運行,由於其多平臺和安全性被廣泛使用,是最流行的Web服務器端軟件之一,它快速、可靠並且通過簡單的API擴展,將Perl/Python等解釋器編譯到服務器中。
Apache是以進程爲基礎的結構,進程要比線程消耗更多的系統開支,不太適用於多處理器環境,因此,在一個apache Web站點擴容時,通常是增加服務器或擴充羣集節點而不是增加處理器。
Nginx:
Nginx是一個高性能的HTTP和反向代理服務器。
是一款輕量級的web服務器/反向代理服務器/電子郵件(IMAP/POP3)代理服務器。
1、優缺點比較:
(1)nginx相對於apache的優點:
* 輕量級,同樣起web服務,比apache佔用更少的內存及資源
* 抗併發,nginx處理請求是異步非阻塞的,而apache是阻塞型的
在高併發下,nginx能保持低資源低消耗高性能
* 高度模塊化的設計,編寫模塊相對簡單
(2)apache相對於nginx的優點:
* Rewrite比nginx的rewrite強大 ###rewrite的主要功能就是實現統一資源定位符(URL)的跳轉
* 模塊多,基本想到的都可以找到
* 少bug,nginx的bug相對較多
* 超穩定
存在的理由:一般來說,需要性能的web服務,用nginx。若不需要性能只求穩定,就選用apache。
2、作爲web服務器:
相比apache,nginx使用更少的資源,支持更多的併發連接,體現更高的效率。
Nginx作爲負載均衡服務器:nginx既可以在內部直接支持rails和php程序對外進行服務,也可以支持http代理服務器對外進行服務。Nginx採用C進行編寫,不論是系統資源開銷還是CPU使用效率都比較好。
作爲郵件代理服務器:最早開發這個產品的目的之一也是作爲郵件代理服務器。
3、nginx配置簡潔, apache較複雜
Nginx靜態處理性能比apache高3倍以上
4、最核心的區別在於:apache是同步多進程模型,一個連接對應一個進程,nginx是異步的,多個連接可以對應一個進程。
Nginx處理靜態文件好,耗費內存少,只適合靜態和反向。Apache在處理動態有優勢,nginx併發性比較好,CPU佔用內存低,如果rewrite頻繁,選用apache最佳。
總的來說,apache依然是大部分公司的首選