nginx是目前應用廣泛的web服務負載均衡器,相較於apache來講nginx屬於輕量級的web負載均衡器,執行過程中占用更少記憶體及資源。nginx能夠支援上萬併發,這得益於nginx處理請求是非同步非阻塞型的,而apache 則是阻塞型,在高併發下nginx仍 能保持較低的資源消耗,其中核心區別於apache同步多程序模型連線對應程序;nginx非同步多連線(萬級別)對應程序。nginx確實在某些方面效能上優於apache,尤其是在處理靜態檔案上,nginx 靜態處理效能比 apache 高 3倍上,但這並不是說nginx已經完全超越apache,apache仍有他無法取代的優點,比如apache的穩定性要遠高於nginx,apache元件比nginx要多。所以對於兩者的選擇要根據實際情況來定,如果對效能要求或需要處理大量靜態資源則使用nginx,如果對穩定性要求高或處理大量動態請求則推薦apache。閒話不多說了,下面介紹下如何安裝配置nginx。
3.首先檢查預設配置是否有問題,開啟命令列視窗,進入到nginx的home目錄,輸入nginx.exe -t 命令,如果出現如圖所示則說明nginx.conf配置檔案沒有問題
4.接下來需要修改該配置檔案,讓他真正實現負載均衡了,下面是修改後的配置檔案內容
#快取時間設定
#js和css快取時間設定
location ~ .*\.(js|css)?$}}
觀察上面的配置檔案需要注意的地方有以下幾點:
1.tomcat集群名稱一定要與**伺服器的dialing路徑一樣,也就是nginx**伺服器的proxy_pass一定要與upstream名稱相同。
2.在tomcat集群中server定位一定要遵循ip+埠形式,否則檢測將不會通過。
3.worker_processes的值應設為小於等於cpu總核心數,決定著nginx啟動的程序數目
4.worker_connections為單個程序最大連線數(最大連線數=連線數*程序數)
5.upstream的負載均衡,weight是權重,可以根據機器配置定義權重。weigth引數表示權值,權值越高被分配到的機率越大。
一切準備完畢之後測試下實驗成果,本人屬於懶人,姑且開啟兩個版本的tomcat(tomcat6和tomcat7)通過其不同的展現頁面來區分nginx將請求分配到了哪個物理伺服器上,根據以上配置多次請求localhost:8088/這個位址依次出現如下兩幅畫面:
上圖表示訪問到的是tomcat7,下圖表示訪問到的是tomcat6
由此說明我們配置的nginx實現負載均衡的效果實現了,那麼究竟為啥nginx的效能就要比apache高呢?我們知道執行緒執行過程中有五種狀態,分別是:就緒,執行,阻塞,就緒,死亡。當乙個執行緒啟動(呼叫start方法後)之後進入就緒狀態等待獲取cpu資源,而一旦該執行緒獲取了cpu資源之後變灰處於執行狀態執行run方法,當處於執行狀態的執行緒等待i/o資源或執行sleep方法後就會暫時讓出cpu資源進入阻塞狀態,當該執行緒重新獲取到了i/o資源或sleep結束後執行緒便重新進入就緒狀態進入就緒佇列等待cpu,得到cpu資源後繼續執行直到執行緒結束。而當web伺服器如處理大量請求時,會頻繁進行磁碟io讀寫操作,cpu輪訓時會使執行狀態的請求進入「阻塞」狀態,這就是阻塞產生的原因,nginx獨特的master/worker模式很好的解決了併發問題。它的核心思想是,系統有兩個程序協作工作:master程序,負責接收和分配任務;worker程序,負責處理子任務。當worker程序將子任務處理完成後,結果返回給master程序,由master程序做歸納彙總,最後得到最終的結果。同一時刻只有乙個worker建立連線,用到了鎖的概念來保證只有乙個worker處理請求。採用多執行緒好處,如果乙個worker掛掉,對於其他沒有影響。
Nginx Tomcat集群搭建
上篇部落格寫了nginx作為反向 的作用,它能作為乙個收集器,收集客戶端請求,然後分發給集群的伺服器處理。這種方式降低了訪問壓力。今天介紹怎麼在windows下搭建集群 nginx 2個tomcat 一 準備工作 2.tomcat 我用的6.0.28 二 配置 1.首先修改nginx的配置檔案,在c...
Nginx Tomcat集群搭建
一 在伺服器上安裝好tomcat,並將專案發布到tomcat上 二 nginx安裝步驟 i.解壓命令 tar vxzf nginx安裝包名 c 進入解壓後的nginx資料夾 d 設定配置資訊,執行 configure prefix usr local nginx 命令 i.usr local ngi...
Nginx Tomcat搭建集群
nginx是一款自由的 開源的 高效能的http伺服器和反向 伺服器 同時也是乙個imap pop3 smtp 伺服器 nginx可以作為乙個http伺服器進行 的發布處理,另外nginx可以作為反向 進行負載均衡的實現。正向 當我們需要訪問一下外國 時由於一定的原因,無法正常訪問,此時找到乙個可以...