在线不卡日本ⅴ一区v二区_精品一区二区中文字幕_天堂v在线视频_亚洲五月天婷婷中文网站

  • <menu id="lky3g"></menu>
  • <style id="lky3g"></style>
    <pre id="lky3g"><tt id="lky3g"></tt></pre>

    Nginx負(fù)載均衡原理及應(yīng)用實(shí)踐

    Nginx負(fù)載均衡原理及應(yīng)用實(shí)踐

    邏輯架構(gòu)圖

    Nginx負(fù)載均衡的邏輯架構(gòu)圖如下圖所示:

    Nginx負(fù)載均衡邏輯架構(gòu)圖

    負(fù)載均衡配置

    Nginx負(fù)載均衡服務(wù)器清單:

    服務(wù)器名稱

    IP

    說明

    Load Balance Server

    10.0.0.10

    Nginx負(fù)載均衡服務(wù)器

    Web Server 1

    10.0.0.20

    Web應(yīng)用服務(wù)器

    Web Server 2

    10.0.0.21

    Web應(yīng)用服務(wù)器

    負(fù)載均衡服務(wù)器Nginx.conf配置如下:

    worker_process 1;events {worker_connections 1024;}http {include mime.types;default_type application/octet-stream;sendfile on;keepalive_timeout 65;upstream www_pools { # 定義Web服務(wù)池server 10.0.0.20:80 weight = 1;server 10.0.0.21:80 weight = 1;}server { # 定義負(fù)載均衡虛擬主機(jī)listen 80;server_name www.test.com; # 根據(jù)實(shí)際域名填寫location / {proxy_pass http://www_pools; # 訪問www.test.com,請求轉(zhuǎn)發(fā)給www_pools中的節(jié)點(diǎn)}}}

    重啟Nginx服務(wù):

    nginx -s reload

    至此,已經(jīng)完成了一個簡單的負(fù)載均衡集群網(wǎng)絡(luò)的配置,當(dāng)用戶輸入網(wǎng)址http://www.test.com/訪問負(fù)載均衡服務(wù)器時,負(fù)載均衡會根據(jù)設(shè)置的負(fù)載均衡算法將訪問請求分發(fā)到Web Server 1和Web Server 2兩個節(jié)點(diǎn)。

    負(fù)載均衡核心組件

    upstream 模塊

    模塊簡介

    Nginx負(fù)載均衡功能依賴于ngx_http_upstream_module模塊,所支持的代理方式包括proxy_pass、fastcgi_pass、memcached_pass。

    模塊語法

    示例1:基本upstream配置

    upstream www_pools { # upstream關(guān)鍵詞必須有,www_pools為集群組名稱,自定義server 10.0.0.20:80 weight=5; # server固定關(guān)鍵詞,后接域名或IP,端口不指定默認(rèn)80server 10.0.0.21:80 weight=10; # weight表示權(quán)重,權(quán)重越大被分配幾率越大}

    示例2:較完整的upstream配置

    upstream web_pools {server 10.0.0.5;server 10.0.0.6:80 weight=1 max_fails=1 fail_timeout=10s;server 10.0.0.10:80 weight=2 max_fails=2 fail_timeout=20s backup;}

    示例3:使用域名及socket的upstream配置

    upstream backend {server backend1.example.com weight=5;server backend2.example.com:8080;server unix:/tmp/backend3; # 指定socket文件server backup1.example.com:8080 backup;server backup2.example.com:8080 backup; #backup表示備份服務(wù)器,其他指定服務(wù)器都不可用時啟動}

    相關(guān)參數(shù)

    upstream模塊內(nèi)部server標(biāo)簽參數(shù)說明

    Server標(biāo)簽

    參數(shù)說明

    server 10.0.0.10:80

    節(jié)點(diǎn)地址可以是IP或者域名,端口不寫則默認(rèn)為80端口

    weight=1

    服務(wù)器權(quán)重,默認(rèn)值為1。權(quán)重越大表示接收請求比例越大

    max_fails=1

    Nginx嘗試連接后端主機(jī)節(jié)點(diǎn)失敗的次數(shù)

    backup

    熱備配置參數(shù),當(dāng)前面激活的節(jié)點(diǎn)都失敗后會自動啟動熱備節(jié)點(diǎn)。注意:當(dāng)負(fù)載調(diào)度算法為ip_hash時,狀態(tài)不能是weight和backup。

    fail_timeout=10s

    在max_fails定義的失敗次數(shù)后,距離下次檢查的間隔時間,默認(rèn)是10s。

    down

    標(biāo)志著該節(jié)點(diǎn)永遠(yuǎn)不可用,這個參數(shù)可配合ip_hash使用。

    http_proxy_module模塊

    proxy_pass指令屬于ngx_http_proxy_module模塊,此模塊可以將請求轉(zhuǎn)發(fā)到另一臺服務(wù)器。 在實(shí)際的反向代理工作中,會通過location功能匹配指定的URI,然后把接收到的符合匹配URI的請求通過proxy_pass拋給定義好的upstream節(jié)點(diǎn)池。

    常見的使用案例:

    (1)將匹配URI為name的請求拋給http://127.0.0.1/remote:

    location /name/ {proxy_pass http://127.0.0.1/remote/;}

    (2)將匹配URI為name的請求應(yīng)用指定的rewrite規(guī)則,然后拋給http://127.0.0.1:

    location /name/ {rewrite /name/([^/]+) /users?name=$1 break;proxy_pass http://127.0.0.1;}

    負(fù)載均衡調(diào)度算法

    調(diào)度算法一般可以分為兩類:

    靜態(tài)調(diào)度算法: 負(fù)載均衡器根據(jù)自身設(shè)定的規(guī)則進(jìn)行分配,不考慮后端節(jié)點(diǎn)服務(wù)器的情況。比如rr、wrr、ip_hash都屬于靜態(tài)調(diào)度算法。

    動態(tài)調(diào)度算法: 負(fù)載均衡器會根據(jù)后端服務(wù)器當(dāng)前狀況來決定是否分發(fā)請求。比如least_conn、fair等都屬于動態(tài)調(diào)度算法。

    rr輪詢算法

    按照客戶端請求順序把客戶端請求逐一分配給不同的后端節(jié)點(diǎn),若后端節(jié)點(diǎn)宕機(jī),則會被自動從節(jié)點(diǎn)池中剔除。

    wrr權(quán)重輪詢算法

    在rr輪詢算法的基礎(chǔ)上加上權(quán)重,即權(quán)重輪詢算法。權(quán)重和用戶訪問量成正比,權(quán)重值越大,被轉(zhuǎn)發(fā)的請求也就越多。

    ip_hash算法

    每個請求按照客戶端IP的hash結(jié)果分配,當(dāng)新的請求到達(dá)時,先講起客戶端的IP通過哈希算法哈希出一個值,相同的哈希值會被分配到同一臺節(jié)點(diǎn)服務(wù)器。

    該調(diào)度算法可以解決動態(tài)網(wǎng)頁的session共享問題。

    fair算法

    根據(jù)后端節(jié)點(diǎn)服務(wù)器的響應(yīng)時間來分配請求,響應(yīng)時間短的有限分配。

    Nginx本身不支持fair調(diào)度算法,如果要使用該算法,必須下載upstream_fair模塊。

    least_conn算法

    根據(jù)后端節(jié)點(diǎn)的連接數(shù)來決定分配情況,哪個節(jié)點(diǎn)連接數(shù)少就分給哪個節(jié)點(diǎn)。

    url_hash算法

    根據(jù)訪問URL的hash結(jié)果來分配請求,讓每個URL定向到同一個后端服務(wù)器。

    Nginx本身不支持url_hash的,如果需要使用該算法,必須安裝Nginx的hash模塊軟件包。

    鄭重聲明:本文內(nèi)容及圖片均整理自互聯(lián)網(wǎng),不代表本站立場,版權(quán)歸原作者所有,如有侵權(quán)請聯(lián)系管理員(admin#wlmqw.com)刪除。
    上一篇 2022年7月13日 09:20
    下一篇 2022年7月13日 09:21

    相關(guān)推薦

    聯(lián)系我們

    聯(lián)系郵箱:admin#wlmqw.com
    工作時間:周一至周五,10:30-18:30,節(jié)假日休息