springboot nginx配置集群

2021-10-04 14:18:30 字數 2430 閱讀 1682

nginx簡介

nginx (engine x) 是乙個高效能的http和反向**web伺服器

nginx同apache一樣都是一種web伺服器。基於rest架構風格,以統一資源描述符(uniform resources identifier)uri或者統一資源定位符(uniform resources locator)url作為溝通依據,通過http協議提供各種網路服務。

正向**和反向**

正向**

**客戶

隱藏真實的客戶,為客戶端收發請求,使真實客戶端對伺服器不可見

乙個區域網內的所有使用者可能被一台伺服器做了正向**,由該台伺服器負責 http 請求

反向**

**伺服器

隱藏了真實的伺服器,為伺服器收發請求,使真實伺服器對客戶端不可見

負載均衡伺服器,將使用者的請求分發到空閒的伺服器上

意味著使用者和負載均衡伺服器直接通訊,即使用者解析伺服器網域名稱時得到的是負載均衡伺服器的 ip

共同點都是做為伺服器和客戶端的中間層。

都可以加強內網的安全性,阻止 web 攻擊。

都可以做快取機制,提高訪問速度。

區別正向**其實是客戶端的**,反向**則是伺服器的**

正向**中,伺服器並不知道真正的客戶端到底是誰;而在反向**中,客戶端也不知道真正的伺服器是誰。

作用不同。正向**主要是用來解決訪問限制問題;而反向**則是提供負載均衡、安全防護等作用。

1. 啟動兩個server

首先啟動兩個springboot的應用,例如192.168.10.207:11003和192.168.10.110:11003

2. 沒有集群的配置   

upstream  wowdata

server  

error_page   500 502 503 504  /50x.html;  

location = /50x.html

}3. 集群配置

現在我們讓他也**到192.168.10.207:11003,只需要在upstream裡面把另外乙個server加進來就行了

upstream mytest

server

error_page   500 502 503 504  /50x.html;

location = /50x.html

4. 指定權重

考慮到每個伺服器的效能可能不同,承載量必然也不同,可以給每個伺服器指定乙個weight(權重),權重的數值越大,被分配到的機率也更大,例如weight=2是weight=1訪問量的兩倍。

上面不寫weight的時候,實際上系統預設所有server的weight都是1,也就是相同權重。

upstream  wowdata

#server部分都不用改

server

5. ip_hash,給使用者固定某個server

這樣可以給某個ip固定乙個server,解決後端server的session不共享、快取等問題。

不過如果某個server宕掉,使用者還是會被分配過去,而前面的方式則不會存在這個問題,所以還是不建議採用這種方式。session、快取的問題可以用redis等方案來解決。

upstream  wowdata

6. 其他分配的方式

除了隨機分配、ip_hash,還有fair(根據響應時間分配)、url_hash(根據url的hash來分配)等方式

測試

配置好了之後啟動 nginx

輸入 http://localhost/process/login?username=admin&password=123465

因為我兩台伺服器的登入密碼是不一樣,所以有一台 權重為 1 的 會登入成功,權重為 2的登入失敗.

測試後的結果登入成功 一次

然後兩次登入失敗

7. server的其他狀態

上面說到的weight是其中乙個狀態

類似的的狀態還有:

1、down 表示單前的server暫時不參與負載

2、weight 權重,預設為1。 weight越大,負載的權重就越大。

3、max_fails 允許請求失敗的次數預設為1。當超過最大次數時,返回proxy_next_upstream 模組定義的錯誤

4、fail_timeout max_fails次失敗後,暫停的時間。

5、backup 備用伺服器, 其它所有的非backup機器down或者忙的時候,請求backup機器。所以這台機器壓力會最輕。

JVM配置引數集

持續更新.xx maxmetaspacesize 示例 xx maxmetaspacesize 256m 設定元空間最大值,預設是 1,即不限制,或者說只受限於本地記憶體大小 xx metaspacesize 示例 xx metaspacesize 256m 指定元空間觸發fullgc的初始閾值 元...

Linux下配置Nginx Tomcat集群

1.安裝和配置tomcat 由於沒有多台linux伺服器,因此我是在一台linux伺服器上部署2個tomcat應用來演示群集,在 usr local 下建立2個目錄,分別為tomcat1和tomcat2,然後將實現準備好的tomcat壓縮包,解壓到這2個目錄中 然後將tomcat2配置檔案內的所有埠...

ambari 介面配置問題集

1 一直無法在準備狀態 解決方法 缺少了那個檔案,就在報錯缺失的路徑建立,並賦予許可權 通過檢視,var run ambari server目錄下確實沒有bootstrap資料夾,手動新增即可 mkdir bootstrap 但是,如果只建立該資料夾的話,ambari依然報錯,大概是沒有許可權相關的...