天天看點

Apache與Nginx

Apache與Nginx的優缺點比較  ---

1、nginx相對于apache的優點: 

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

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

高度子產品化的設計,編寫子產品相對簡單 

社群活躍,各種高性能子產品出品迅速啊 

apache 相對于nginx 的優點: 

rewrite ,比nginx 的rewrite 強大 

動态頁面

子產品超多,基本想到的都可以找到 

少bug ,nginx 的bug 相對較多 

超穩定 

存在就是理由,一般來說,需要性能的web 服務,用nginx 。如果不需要性能隻求穩定,那就apache 吧。

後者的各種功能子產品實作得比前者,例如ssl 的子產品就比前者好,可配置項多。這裡要注意一點,epoll(freebsd 上是 kqueue )網絡

IO 模型是nginx 處理性能高的根本理由,但并不是所有的情況下都是epoll 大獲全勝的,如果本身提供靜态服務的就隻有寥寥幾個文

件,apache 的select 模型或許比epoll 更高性能。當然,這隻是根據網絡IO 模型的原理作的一個假設,真正的應用還是需要實測了再說

的。 

2、作為 Web 伺服器:相比 Apache,Nginx 使用更少的資源,支援更多的并發連接配接,展現更高的效率,這點

使 Nginx 尤其受到虛拟主機提供商的歡迎。在高連接配接并發的情況下,Nginx是Apache伺服器不錯的替代品: Nginx在美國是做虛拟主機生

意的老闆們經常選擇的軟體平台之一. 能夠支援高達 50,000 個并發連接配接數的響應, 感謝Nginx為我們選擇了 epoll and kqueue 作為開發模型. 

Nginx

作為負載均衡伺服器: Nginx 既可以在内部直接支援 Rails 和 PHP 程式對外進行服務, 也可以支援作為 HTTP代理 伺服器對外進行

服務. Nginx采用C進行編寫, 不論是系統資源開銷還是CPU使用效率都比 Perlbal 要好很多. 

作為郵件代理伺服器: Nginx 同時也是一個非常優秀的郵件代理伺服器(最早開發這個産品的目的之一也是作為郵件代理伺服器), Last.fm 描述了成功并且美妙的使用經驗. 

Nginx 是

一個安裝非常的簡單 , 配置檔案非常簡潔(還能夠支援perl文法), Bugs 非常少的伺服器: Nginx 啟動特别容易, 并且幾乎可以做到

7*24不間斷運作,即使運作數個月也不需要重新啟動. 你還能夠不間斷服務的情況下進行軟體版本的更新 . 

3、Nginx 配置簡潔, Apache 複雜 

Nginx 靜态處理性能比 Apache 高 3倍以上 

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

Apache 的元件比 Nginx 多 

現在 Nginx 才是 Web 伺服器的首選 

4、最核心的差別在于apache是同步多程序模型,一個連接配接對應一個程序;nginx是異步的,多個連接配接(萬級别)可以對應一個程序 

5、nginx處理靜态檔案好,耗費記憶體少.但無疑apache仍然是目前的主流,有很多豐富的特性.是以還需要搭配着來.當然如果能确定nginx就适合需求,那麼使用nginx會是更經濟的方式. 

apache有先天不支援多核心處理負載雞肋的缺點,建議使用nginx做前端,後端用apache。大型網站建議用nginx自代的叢集功能

6、

從個人過往的使用情況來看,nginx的負載能力比apache高很多。最新的伺服器也改用nginx了。而且nginx改完配置能-t測試一下配置有沒

有問題,apache重新開機的時候發現配置出錯了,會很崩潰,改的時候都會非常小心翼翼現在看有好多叢集站,前端nginx抗并發,後端apache叢集,

配合的也不錯。

7、nginx處理動态請求是雞肋,一般動态請求要apache去做,nginx隻适合靜态和反向。 

8、從我個人的經驗來看,nginx是很不錯的前端服務器,負載性能很好,在老奔上開nginx,用webbench模擬10000個靜態檔案請求毫不吃力。apache對php等語言的支援很好,此外apache有強大的支援網路,發展時間相對nginx更久,

9、

Nginx優于apache的主要兩點:1.Nginx本身就是一個反向代理伺服器 2.Nginx支援7層負載均衡;其他的當然,Nginx可能會比

apache支援更高的并發,但是根據NetCraft的統計,2011年4月的統計資料,Apache依然占有62.71%,而Nginx是

7.35%,是以總得來說,Aapche依然是大部分公司的首先,因為其成熟的技術和開發社群已經也是非常不錯的性能。 

10、你對web server的需求決定你的選擇。大

部分情況下nginx都優于APACHE,比如說靜态檔案處理、PHP-CGI的支援、反向代理功能、前端Cache、維持連接配接等等。在

Apache+PHP(prefork)模式下,如果PHP處理慢或者前端壓力很大的情況下,很容易出現Apache程序數飙升,進而拒絕服務的現象。 

11、可以看一下nginx lua子產品:https://github.com/chaoslaw...apache比nginx多的子產品,可直接用lua實作apache是最流行的,why?大多數人懶得更新到nginx或者學新事物 

12、對于nginx,我喜歡它配置檔案寫的很簡潔,正則配置讓很多事情變得簡單運作效率高,占用資源少,代理功能強大,很适合做前端響應伺服器 

繼續閱讀