首頁  >  文章  >  運維  >  Apache與ngin伺服器差異是什麼

Apache與ngin伺服器差異是什麼

爱喝马黛茶的安东尼
爱喝马黛茶的安东尼原創
2019-11-11 09:52:372875瀏覽

Apache與ngin伺服器差異是什麼

Nginx

#1、輕量級,採用C 來寫,同樣的web 服務,會佔用更少的記憶體及資源;

2、抗並發,nginx 以epoll and kqueue 作為開發模型,處理請求是非同步非阻塞的,負載能力比apache 高很多,而apache 則是阻塞型的。在高同時發生nginx 能維持低資源低消耗高效能,而apache 在PHP 處理慢或前端壓力很大的情況下,很容易出現進程數飆升,從而拒絕服務的現象;

3、 nginx 處理靜態檔案好,靜態處理效能比apache 高三倍以上;

4、nginx 的設計高度模組化,編寫模組相對簡單;

5、nginx 設定簡潔,正規設定讓很多事情變得簡單,改完配置能使用-t 測試配置有沒有問題,apache 配置複雜,重啟的時候發現配置出錯了,會很崩潰;

6、nginx 作為負載平衡伺服器,支援7 層負載平衡;

7、nginx 本身就是一個反向代理伺服器,而且可以作為非常優秀的郵件代理伺服器;

8、啟動特別容易, 並且幾乎可以做到7*24 不間斷運行,即使運行數月也不需要重新啟動,還能夠不間斷服務的情況下進行軟體版本的升級;

9、社區活躍,各種高性能模組出品迅速。

apache

1、apache 的rewrite 比nginx 強大,在rewrite 頻繁的情況下,用apache;

2、apache 發展到現在,模組超多,基本上想到的都可以找到;

3、apache 比較成熟,少bug ,nginx 的bug 相對較多;

4、apache 超穩定;

5、apache 對PHP 支援比較簡單,nginx 需要配合其他後端用;

6、apache 在處理動態請求有優勢,nginx 在這方面是雞肋,一般動態請求要apache 去做,nginx 適合靜態和反向;

7、apache 仍然是目前的主流,擁有豐富的特性,成熟的技術和開發社群。

總結

兩者最核心的差異在於apache 是同步多進程模型,一個連接對應一個進程,而nginx 是異步的,多個連接(萬級別)可以對應一個進程。

一般來說,需要效能的 web 服務,用 nginx 。如果不需要效能只求穩定,更考慮 apache ,後者的各種功能模組實作得比前者好,例如 ssl 的模組就比前者好,可設定項多。 epoll(freebsd 上是kqueue ) 網路IO 模型是nginx 處理性能高的根本理由,但並不是所有的情況下都是epoll 大獲全勝的,如果本身提供靜態服務的就只有寥寥幾個文件,apache 的select 模型或許比epoll 更高效能。當然,這只是根據網路 IO 模型的原理作的假設,真正的應用還是需要實測了再說的。

更為通用的方案是,前端 nginx 抗並發,後端 apache 集群,配合起來會更好。

php中文網,大量的免費apache入門教學,歡迎線上學習!

以上是Apache與ngin伺服器差異是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn