Apache和Nginx的優缺點

2021-07-16 05:46:50 字數 2685 閱讀 5209

nginx相對於apache的優點:

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

2)抗併發,nginx 處理請求是非同步非阻塞的,而apache 則是阻塞型的,在高併發下nginx

3)能保持低資源低消耗高效能

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

5)社群活躍,各種高效能模組出品迅速啊apache 相對於nginx 的優點:

1)rewrite ,比nginx 的rewrite強大

2)模組超多,基本想到的都可以找到

3)少bug ,nginx的bug相對較多

4)超穩定

存在就是理由

一般來說,需要效能的web 服務,用nginx 。如果不需要效能只求穩定,那就apache 吧。

後者的各種功能模組實現得比前者,例如ssl 的模組就比前者好,可配置項多。

這裡要注意一點,epoll(freebsd 上是 kqueue )網路 io 模型是nginx 處理效能高的根本理由,

但並不是所有的情況下都是epoll 大獲全勝的,如果本身提供靜態服務的就只有寥寥幾個文 件,apache 的select

模型或許比epoll 更高效能。當然,這只是根據網路io 模型的原理作的乙個假設,真正的應用還是需要實測了再說 的。

web 伺服器與郵件**伺服器的效率,這點 使 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不間斷執行,即使執行數個月也不需要重新啟動. 你還能夠不

間斷服務的情況下進行軟體版本的公升級 .

區別:

最核心的區別在於apache是同步多程序模型,乙個連線對應乙個程序;nginx是非同步的,多個連線(萬級別)

可以對應乙個程序

nginx處理靜態檔案好,耗費記憶體少.但無疑apache仍然是目前的主流,有很多豐富的特性.所以還需

要搭配著來.當然如果能確定nginx就適合需求,那麼使用nginx會是更經濟的方式.

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

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

有沒 有問題,apache重啟的時候發現配置出錯了,會很崩潰,改的時候都會非常小心翼翼現在看有好多集群站,前端nginx抗併發,

後端apache集群, 配合的也不錯。

nginx處理動態請求是雞肋,一般動態請求要apache去做,nginx只適合靜態和反向。

從我個人的經驗來看,nginx是很不錯的前端伺服器,負載效能很好,在老奔上開nginx,用webbench模擬10000個靜態檔案請求毫不

吃力。apache對php等語言的支援很好,此外apache有強大的支援網路,發展時間相對nginx更久

nginx優於apache的主要兩點

1.nginx本身就是乙個反向**伺服器

2.nginx支援7層負載均衡;其他的當然,nginx可能會比 apache支援更高的併發,但是根據netcraft的統計,2023年7月apache web服

務器的**佔全球市場份額的61.45%

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

大 部分情況下nginx都優於apache,比如說靜態檔案處理、php-cgi的支援、反向**功能、前端cache、維持連線等等。在 apache+php(prefork)模式下,如果php處理慢或者前端壓力很大的情況下,很容易出現apache程序數飆公升,從而拒絕服務的現象。

可以看一下nginx lua模組:比nginx多的模組,可直接用lua實現apache是最流行的,why?大多數人懶得更新到nginx或者學新事物

對於nginx,我喜歡它配置檔案寫的很簡潔,正則配置讓很多事情變得簡單執行效率高,占用資源少,**功能強大,很適合做前端響應伺服器

apache在處理動態有優勢,nginx併發性比較好,cpu記憶體占用低,如果rewrite頻繁,那還是apache吧

AsyncTask 和Handler 的優缺點比較

asynctask 實現的原理和優缺點 優點 快捷 方便 缺點 當執行多個後台任務,和並需要ui 變更起來就比較複雜 handler 實現的原理和優缺點 優點 簡單 清晰 缺點 當執行單個後台任務,顯得 過多,結構複雜 相對性 asynctask 介紹 android 的asynctask 比han...

hibernate和mybatis的優缺點

mybatis的優點 1 易於上手和掌握,提供了資料庫查詢的自動物件繫結功能 2 sql寫在xml裡,便於統一管理和優化,解除sql與程式 的耦合。3 提供對映標籤,支援物件與資料庫的orm欄位關係對映 4 提供物件關係對映標籤,支援物件關係組建維護 5 提供xml標籤,支援編寫動態sql。6 速度...

OpenSessionInView的優缺點

概念 在hibernate中使用load方法時,並未把資料真正獲取時就關閉了session,當我們真正想獲取資料時會迫使load載入資料,而此時 session已關閉,所以就會出現異常。比較典型的是在mvc模式中,我們在m層呼叫持久層獲取資料時 持久層用的是load方法載入資料 當這一呼叫結束時,s...