剖析Nginx集群和Apache,並分析對比

2021-10-06 04:20:42 字數 1317 閱讀 7659

二 . 集群配置注意事項(再次羅列以下)

1.tomcat集群名稱一定要與**伺服器的dialing路徑一樣,也就是nginx**伺服器的proxy_pass一定要與upstream名稱相同。

2.在tomcat集群中server定位一定要遵循ip+埠形式,否則檢測將不會通過。

3.worker_processes的值應設為小於等於cpu總核心數,決定著nginx啟動的程序數目

4.worker_connections為單個程序最大連線數(最大連線數=連線數*程序數)

5.upstream的負載均衡,weight是權重,可以根據機器配置定義權重。weigth引數表示權值,權值越高被分配到的機率越大。

三 .nginx 與 apache

nginx:

1.nginx目前是在web服務應用比較廣泛的負載均衡器,相比apache  nginx屬於輕量級的web負載均衡器,nginx執行過程中占用的資源以及記憶體比較少。

2.nginx能夠支援萬級別的併發請求,這是因為nginx請求處理型別屬於非同步非阻塞型別(非同步對連線),所以在高併發下nginx仍能保持較低的資源消耗。

3.nginx 處理靜態檔案比較迅速。

apache:

1.apache 是屬於阻塞性,同步多程序模型連線。

2.apache的穩定性比較高,優越性高於nginx。(apache元件相對多一些)

對穩定性要求高 或者處理大量動態請求則推薦使用apache。

四. 為何會產生阻塞

原理:當乙個執行緒啟動(呼叫star方法之後)之後,就進入就緒狀態等待獲取cpu資源,若該縣城一旦獲得cpu資源之後就會處於執行狀態,則活執行run方法,當處於執行狀態的執行緒等待i/o資源或執行sleep方法後就會暫時讓出cpu資源進入阻塞狀態,當該執行緒重新獲取到i/o資源後或者sleep方法執行結束後,執行緒便重新進入就緒佇列等待cpu,得到cpu資源後繼續執行直到執行緒執行結束。

原因:當web伺服器處理大量請求時,會頻繁進行磁碟io讀寫操作,cpu輪訓是會試執行狀態請求進入「阻塞」狀態,這就是阻塞產生的原因。

nginx處理阻塞思想:

nginx獨特的master/worker模式很好的解決了併發的問題。他的處理核心思想是,系統有兩個程序協作工作(master、worker),master負責接收和分配任務。worker負責處理子任務 。當worker程序將子任務處理完成後,將結果返回給master程序,有master程序做總結得結果過。同一時刻只有乙個worker建立連線,用到了鎖的概念,保證只有乙個worker處理請求,採用多執行緒的好處,若果乙個worker掛掉,對其他沒有影響。

NGINX原理剖析

nginx之所以能夠支援高併發,是由於它採用非同步 事件驅動的方式處理連線。nginx有乙個master process,負責載入配置檔案,繫結埠等特權操作 有cache manage process和cache loader process兩個程序負責硬碟快取的處理,在nginx啟動時,將硬碟的快...

為什麼我們使用Nginx而不是Apache?

apache是非常強大的web伺服器,模組化結構,也是web服務端的鼻祖。世界上大多數 仍執行著apache系統。但是,apache並不是完美的,並且不再適合大規模系統。為什麼?因為他的程序模式雖然簡單而靈活,但並不適合大規模尤其是當要處理像php這種需要占用大量記憶體應用程式 時。我們大多數的客戶...

為什麼我們使用Nginx而不是Apache?

我們大多數的客戶在他們的伺服器上使用apache作為web伺服器,尤其是部署在乙個基於php系統的前端並且使用mod php。鑑於擴張性和效能方面的原因,我們通常會建議他們改用nginx和fpm。apache是非常強大的web伺服器,模組化結構,也是web服務端的鼻祖。除了 一些其他的工具外,apa...