架構師之路(一)Nginx系列之負載均衡

2021-10-01 10:03:54 字數 3307 閱讀 3936

1、反向**負載均衡服務概述

反向**:

外網主機---網際網路---中介---內網主機

正向**:

內網主機---網際網路---中介---外網主機(翻牆)

反向**:nginx, 類似中介,中介幫你處理。

負載均衡:lvs,資料**,幫你**請求。

2、反向**負載均衡配置過程

# 在負載均衡伺服器上進行測試

[root@lb01 ~]# curl -h host:www.oldboy.com 10.0.0.7/oldboy.html

web01 www.oldboy.com

[root@lb01 ~]# curl -h host:www.oldboy.com 10.0.0.8/oldboy.html

web02 www.oldboy.com

[root@lb01 ~]# curl -h host:www.oldboy.com 10.0.0.9/oldboy.html

web03 www.oldboy.com

# 負載均衡配置部署

upstream --- 負載均衡模組

proxy_pass   --- 反向**模組

}}

3、負載均衡 upstream 模組詳細說明

1) weight:   權重引數

可以實現權重輪訓分配資源, 預設是輪訓分配資源

upstream oldboy

2) least_conn: 按照節點連線數分配資源

upstream oldboy

3) ip_hash: 確保乙個使用者多次訪問, 負載均衡都會分配給相同web節點 了解

使用者01(100人):   10.0.0.1    ---  001 (產生的雜湊值是001)     web01 

使用者02: 11.0.0.1 --- 011 web02

使用者03: 12.0.0.1 --- 112 web03

000 ~ 150 (總的雜湊值範圍)

000 ~ 050 --> web01 100

051 ~ 100 --> web02

101 ~ 150 --> web03

會造成負載不均情況

優選:使用者01 --> web01(快取客戶端 memcache-php) 使用者01登入資訊

使用者02 ---> lb01 --> web02(快取客戶端 memcache-php) 使用者02登入資訊 --> 快取伺服器 memcached (會話記錄)

使用者03 --> web03(快取客戶端 memcache-php) 使用者03登入資訊 session會話共享伺服器

upstream oldboy

4) 負載均衡節點健康檢查

max_fails=3 --- 最大的失敗次數 lb01 --- http請求 --- web02

fail_timeout=30s --- 失敗超時時間

請求   ---  web01  1次失敗  2次失敗  3次失敗,連續失敗3次後,會在30秒之後再給一次機會,1次失敗後,又是馬上30s,並將請求給web02

請求 --- web02 1次成功

upstream oldboy

5) 節點備份功能

upstream oldboy

備胎式備份, 只要有好的, 就不會用;當10.0.0.7 和 10.0.0.8 都不行了,才會用10.0.0.9

4、負載均衡 proxy 反向**模組詳細說明

proxy_pass:       反向**指令

proxy_set_header: 設定請求頭資訊

01. 訪問負載均衡可以顯示不同**頁面

# 不設定的話,後端伺服器看到請求頭的 host 資訊是upstream模組定義的名字。

proxy_set_header host $host;

# $remote_addr 客戶端ip, 負載均衡為服務端,記錄下客戶端的ip,賦值給x-forwarded-for。

proxy_set_header x-forwarded-for $remote_addr;

03. 檢查**頁面是否正確

# 負載均衡拿到web讀**d的結果,如果遇到404的錯誤,不給使用者,找upstream 定義的主機裡的下一台,返回給使用者。

location /

5、**服務動靜分離

}}6、**服務根據客戶端顯示不同頁面

架構師之路

隨著經驗能力的增長,程式的程式設計習慣也在發生著改變,以下是我個人程式設計習慣的改變。1級 思考一段時間,寫一段 2級 用圖形幫助思考,然後寫 3級 將思考過程寫成注釋,然後再寫 4級 用圖形幫助思考,然後一邊寫注釋,一邊寫 5級 思考過程中增加對不確定技術點的測試。6級 將思考過程寫在記事本裡,將...

架構師之路

方 秒殺系統架構優化思路 分布式id生成器 網際網路架構,如何進行容量設計 執行緒數究竟設多少合理 單點系統架構的可用性與效能優化 關於負載均衡的一切 異構伺服器負載均衡及過載保護 lvs為何不能完全替代dns輪詢 究竟啥才是網際網路架構 高併發 究竟啥才是網際網路架構 高可用 100億資料1萬屬性...

架構師之路

架構的定義 我們來看看軟體架構的一般定義 程式和計算系統軟體體系結構是指系統的乙個或多個結構。該結構包括軟體的構建,構建的外部可見屬性以及它們之間的相互關係。該體系結構不是可操作的軟體。具體來說,這是乙個表示式,它使軟體工程師能夠 分析滿足監管要求的設計有效性。在設計更改相對容易的階段,請考慮架構的...