nginx 負載均衡配置

負載均衡 upstream 介紹

負載均衡(Load Balance) :

    分佈式系統中一個非常重要的概念,當訪問的服務具有多個實例時,需要根據某種 “均衡” 的策略決定請求發往哪個節點,這就是所謂的負載均衡, 原理是將數據流量分攤到多個服務器執行,減輕每臺服務器的壓力,從而提高了數據的吞吐量。

負載均衡的種類 :

    通過硬件來進行解決,常見的硬件有 NetScaler、F5、Radware 和 Array 等商用的負載均衡器,但比較昂貴的。

    通過軟件來進行解決,常見的軟件有 LVS、Nginx 等, 它們是基於 Linux 系統並且開源的負載均衡策略 目前性能和成本來看,Nginx 是目前多數公司選擇使用的。

用戶訪問 nignx,nginx 根據一定的規則將請求轉發到後端應用上

啓動兩個 jar 程序,分別是 8080 端口和 8081 端口

#demo-1監聽8080端口,訪問地址 http://39.107.221.166:8080/api/v1/pub/web 
#demo-2監聽8081端口,訪問地址 http://39.107.221.166:8081/api/v1/pub/web 
nohup java -jar demo-1.jar &
nohup java -jar demo-2.jar &

直接訪問測試

說明點:每次修改完 nginx 的配置文件以後必須【./nginx -s reload 】以後修改的配置文件纔會生效!!!!

nginx 的配置文件如下:

    默認是【輪詢】策略,適合靜態文件服務器

upstream lbs {
   server 192.168.0.106:8080;
   server 192.168.0.106:8081;
}
location /api/ {
    proxy_pass http://lbs;
    proxy_redirect default;
}

配置帶權重的負載均衡策略,【權重】越高,訪問的流量越多【線上常用手段】

upstream lbs {
   server 192.168.159.133:8080 weight=10;
   server 192.168.159.133:8081 weight=5; 
}

ip_hash(固定分發)

    簡介:根據請求發起 ip 地址的 hash 結果分配,這樣每個用戶就可以固定訪問一個後端服務器【只要用戶 ip 不變,那麼就一直訪問同一個後端服務】

    場景:服務器業務分區、業務緩存、Session 需要單點的情況

upstream lbs {
    ip_hash;
    server 192.168.159.133:8080;
    server 192.168.159.133:8081;
}

設置某個節點狀態爲 down 下線

down 表示當前的該節點暫時不參與負載

upstream lbs {
   server 192.168.159.133:8080 weight=10 down;
   server 192.168.159.133:8081 weight=5; 
}

設置某個節點是 backup 狀態

    backup 其它【所有】的⾮ backup 機器下線不可用的時候,纔會請求 backup 機器,因此 backup 的機器壓⼒會最輕,配置也會相對低

upstream lbs {
   server 192.168.0.106:8080;
   server 192.168.0.106:8081 backup;
}

本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源https://mp.weixin.qq.com/s/K1PGZT1cnDn-amR4iC4ZbA