1. 程式人生 > 實用技巧 >nginx tomcat 叢集

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值的總

和為一個迴圈單位,伺服器自身的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