目錄
- 前言:
- 準備作業
- 一.反向代理
- 二.負載均衡
- 三.查看效果
- 四.負載均衡拓展
前言:
??當網站的訪問量達到一定程度后,單臺服務器不能滿足用戶的請求時,需要用多臺服務器集群可以使用nginx做反向代理,并且多臺服務器可以平均分擔負載,不會因為某臺服務器負載高宕機而某臺服務器閑置的情況,
??負載均衡部署的前提是部署過多臺反向代理服務器,或者多臺虛擬主機服務器,客戶端對服務器的訪問通過Nginx的負載均衡策略,選擇相對來說最優的代理服務器或虛擬主機進行訪問,

負載均衡的調度演算法有四種:
輪詢:這一項為默認的,當沒有配置負載均衡時,默認為輪詢狀態,例如,第一個請求web1加載,第二個請求web2加載,第三個請求web3加載,第四個請求web1加載… 以此類推,ip_hash:每個請求按訪問IP的hash結果分配,同一個IP客戶端固定訪問一個后端服務器,可以保證來自同一ip的請求被打到固定的機器上,可以解決session問題,url_hash:按訪問url的hash結果來分配請求,使每個url定向到同一個后端服務器,后臺服務器為快取的時候效率,fair:這是比上面兩個更加智能的負載均衡演算法,此種演算法可以依據頁面大小和加載時間長短智能地進行負載均衡,也就是根據后端服務器的回應時間來分配請求,回應時間短的優先分配,Nginx本身是不支持fair的,如果需要使用這種調度演算法,必須下載Nginx的upstream_fair模塊,
準備作業
系統:Centos7
Nginx版本: 1.18.0
地址:10.8.161.9
測驗機系統:win10
地址:10.8.161.45 (同一局域網)
Nginx代理主機埠:80
負載主機埠:91、92、93、94、95

一.反向代理
- 虛擬5臺主機,以埠方式
server1配置如下 , 其他四臺配置類似
vim /etc/nginx/conf.d/server1.conf # 在子組態檔中創建第一臺配置
### 配置如下 ###
server {
listen 91; #定義埠為 91 埠
server_name 10.8.161.6;
location / {
root /var/www/nginx/server1; # 指定網頁目錄
index index.html index.htm; # 指定訪問的網頁
limit_rate 2k;
}
}
- 創建server1網頁 , 其他四臺配置類似
vim /var/www/nginx/server1/index.html
### 內容如下 ###
111111111111
- 配置完畢如下
① 主機的組態檔

②主機的網頁目錄

二.負載均衡
- 創建負載均衡的配置
vim /etc/nginx/conf.d/fzjh.conf # 在子組態檔conf.d中配置負載均衡組態檔
upstream fzjh { # 配置一個 負載均衡的主機池
# ip_hash; # 負載均衡調度演算法,演算法有四種,詳情見文章開始部分如果注釋掉默認為輪詢狀態
server 10.8.161.6:91; # 指定主機
server 10.8.161.6:92;
server 10.8.161.6:93;
server 10.8.161.6:94;
server 10.8.161.6:95;
}
server { # 配置Nginx的負載均衡
listen 80; # 使用80埠 ,不要和其他主機埠沖突
server_name localhost; # 本機地址
location / {
proxy_pass http://fzjh; # 指定負載的主機池
# proxy_set_header Host $http_host; # 真實服務器的地址,可以是ip也可以是域名和url地址
# proxy_set_header X-Real-IP $remote_addr; # 啟用客戶端真實地址(否則日志中顯示的是代理在訪問網站)
# proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; # 記錄代理地址
# proxy_connect_timeout 30; # 后端服務器連接的超時時間發起三次握手等候回應超時時間
# proxy_send_timeout 60; # 后端服務器資料回傳時間,就是在規定時間之內后端服務器必須傳完所有的資料
# proxy_read_timeout 60; # nginx接收upstream(上游/真實) server資料超時, 默認60s, 如果連續的60s內沒有收到1個位元組, 連接關閉,像長連接
}
}
- 保存退出,并重啟,具體子配置目錄下如下圖,五個虛擬主機配置,一個負載均衡配置,

三.查看效果
默認輪詢策略

ip_hash策略

四.負載均衡拓展
除了負載均衡的四種調度演算法外,還可以單獨在主機上后設定權重,或是其他策略,

weight:權重, weight=1表示一次 ,例如圖中5臺為ABCDE,那么根據圖中訪問策略為ABBCCCDE 根據權重進行平均訪問,

down:表示當前的server暫時不參與負載均衡,
max_fails:允許請求失敗的次數,默認為1,當超過最大次數時,回傳錯誤,
fail_timeout:在經歷了max_fails次失敗后,暫停服務的時間單位秒,max_fails可以和fail_timeout一起使用,
backup:預留的備份機器,當其他所有的非backup機器出現故障或者忙的時候,才會請求backup機器,因此這臺機器的壓力最輕,
======================================================================================================================================================================================================================================================================================================
辛苦瀏覽觀看,如果對你有幫助,請順手點個贊吧 (σ゚?゚)σ…:*☆
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/249018.html
標籤:其他
