nginx tomcat 叢集
window 下安裝nginx 搭建tomcat叢集
1.nginx 下載地址 ,我的是nginx 1.18.0
Nginx官網提供了三個型別的版本
Mainline version:Mainline 是 Nginx 目前主力在做的版本,可以說是開發版
Stable version:最新穩定版,生產環境上建議使用的版本
Legacy versions:遺留的老版本的穩定版
nginx下載地址:http://nginx.org/en/download.html
nginx 原始碼:http://hg.nginx.org/nginx/
2. 在nginx 配置檔案配置tomcat叢集
1)..\nginx-1.18.0\conf\nginx.conf 配置檔案路徑
2)
1)輪詢
最基本的配置方法,是upstream模組預設的負載均衡策略。每個請求會按時間順序平均分配到不同的後端伺服器。有如下引數:
fail_timeout | 與max_fails結合使用 |
max_fails | 在fail_timeout引數設定的時間內最大失敗次數。如果在這個時間內,所有該伺服器的請求都失敗了,那麼認為該伺服器停機 |
fail_time | 伺服器被認為停機的時長,預設10s(被認為停機的伺服器嘗試間隔?) |
backup | 標記該伺服器為備用伺服器。當主伺服器停止時,請求會被髮送到它這裡 |
down | 標記伺服器永久停機 |
注意:1.down標記的伺服器會自動剔除;2.預設就是輪詢;3.此策略適合伺服器配置無狀態且短平塊的服務使用
2)weight
權重方式,在輪詢策略的基礎上指定輪詢的機率。也可以認為是在輪詢的基礎上新增了一個weight的引數,此引數指定輪詢的機率,值為number。upstream模組配置模板如下:
upstream [伺服器組名稱]{ server [IP地址]:[埠號] weight=2; server [IP地址]:[埠號]; .... }
在該例子中,沒有weight引數的伺服器預設為1,weight的數值與訪問比例成正比,所有weight值的總
注意:1.權重越高分配到的請求越多;2.此策略可以和least_conn策略、iphash策略結合使用;3.此策略比較適合伺服器硬體配置差距較大的情況。
3)ip_hash
依據ip分配方式,指定負載均衡器按照基於客戶端IP的分配方式,這個方法確保了相同的客戶端請求一致傳送到相同的伺服器,以保證session會話。這樣每個訪客都固定訪問一個後端伺服器,可以解決session不能跨伺服器的問題。upstream模組配置模板如下:
upstream [伺服器組名稱]{ ip_hash; server [IP地址]:[埠號] weight=2; server [IP地址]:[埠號]; .... }
注意:1.nginx1.3.1之前的版本不能在ip_hash中使用權重(weight);2..ip_hash不能與backup同時使用;3.此策略適合有狀態服務的程式,比如session;4.當有伺服器需要剔除,必須手動down掉。
4)least_conn
最少連線方式,把請求發給連結數最少的後端伺服器。輪詢是把請求平均分配給各個後端,使它們的負載大致相同。但是,有些請求佔用的時間很長,會導致其所在的後端負載較高。這種情況下,least_conn這種方式就可以達到更好的負載均衡效果。upstream模組配置模板如下:
upstream [伺服器組名稱]{ least_conn; server [IP地址]:[埠號] weight=2; server [IP地址]:[埠號]; .... }
注意:此策略適合請求處理時間長短不一造成的伺服器過載情況。
5)fair
響應時間方式,按照伺服器端的響應時間來分配請求,響應時間短的優先分配。upstream模組配置模板如下:
upstream [伺服器組名稱]{ server [IP地址]:[埠號] weight=2; server [IP地址]:[埠號]; .... fair; }
注意:需要安裝第三方外掛。
6)url_hash
url分配方式,按訪問url的hash結果來分配請求,使每個url定向到同一個後端伺服器,要配合快取命中來使用。同一個資源多次請求可能會到達不同的伺服器上,導致不必要的多次下載,快取命中率不高,以及一些資源時間的浪費。而使用url_hash,可以使得同一個url(也就是同一個資源請求)會到達同一臺伺服器,一旦快取住了資源,再次收到請求,就可以在快取中讀取。upstream模組配置模板如下:
upstream [伺服器組名稱]{ hash $request_uri; server [IP地址]:[埠號] weight=2; server [IP地址]:[埠號]; .... }
注意:1.需要安裝第三方外掛;2.uri,是i,不是小寫的L。以上內容為網路拷貝內容,下邊貼上我自己的配置
以下是我的配置 屬於輪詢
說明一下:localtomcat 不能有下劃線,這個問題在nginx高版本會報錯。我就陷在這裡很長時間。
3.進行tomcat 配置
1)由於tomcat 地址為叢集,所以配置的埠不能衝突,需要修改的地方如下:
只需要修改port 埠就好。只要叢集的port 埠不衝突就行。而且在發版的時候可以交替啟動tomcat。程式訪問就不會中斷了。
3. nginx 命令列
啟動:start nginx 。 停止:nginx.exe -s stop .重新載入:nginx.exe -s reload .重新開啟日誌:nginx.exe -s reopen . 檢視版本:nginx -v 。測試配置檔案:nginx.exe -t 。載入指定配置檔案 start nginx.exe -c conf/default.conf