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依然報錯,大概是沒有許可權相關的...