久久福利_99r_国产日韩在线视频_直接看av的网站_中文欧美日韩_久久一

您的位置:首頁技術(shù)文章
文章詳情頁

Nginx負(fù)載均衡之upstream模塊簡介與使用詳解

瀏覽:179日期:2023-03-13 15:37:32
目錄
  • 一、upstream模塊簡介
  • 二、負(fù)載均衡算法簡介
    • 1、輪詢
    • 2、權(quán)重輪詢
    • 3、IP哈希
    • 4、最小連接數(shù)
    • 5、最短響應(yīng)時間
    • 6、url_hash算法
  • 三、配置示例
    • 四、負(fù)載均衡效果展示
      • 1、部署2個web服務(wù)器
      • 2、配置nginx服務(wù)
      • 3、配置域名解析
      • 4、訪問域名驗(yàn)證
      • 5、停止s142的web服務(wù)后再次訪問
      • 6、修改調(diào)度算法為輪詢
    • 總結(jié)

      一、upstream模塊簡介

      Nginx的負(fù)載均衡功能依賴于ngx_http_upsteam_module模塊,所支持的代理方式包括proxy_pass, fastcgi_pass, uwsgi_pass, scgi_pass, memcached_pass和grpc_pass。ngx_http_upstream_module模塊有允許Nginx定義一組或多組服務(wù)組,使用的可以通過proxy_pass代理方式把網(wǎng)站的請求發(fā)送到事先定義好的對應(yīng)upstream組的名字上。upstream模塊可以實(shí)現(xiàn)負(fù)載均衡,其實(shí)隱含了一個重要功能那就是冗余,在一個web節(jié)點(diǎn)故障的時候,配置了upstream時可以自動切換到正常工作的節(jié)點(diǎn)。

      二、負(fù)載均衡算法簡介

      調(diào)度算法一般分為兩類:第一類為靜態(tài)調(diào)度算法,即負(fù)載均衡器根據(jù)自身設(shè)定的規(guī)則進(jìn)行分配,不需要考慮后端節(jié)點(diǎn)服務(wù)器的情。第二類為動態(tài)調(diào)度算法,即負(fù)載均衡器會根據(jù)后端節(jié)點(diǎn)的當(dāng)前狀態(tài)來決定是否分發(fā)請求。

      1、輪詢

      rr 輪循即round robin 默認(rèn)調(diào)度算法,靜態(tài)調(diào)度算法??蛻舳苏埱箜樞虬芽蛻舳说恼埱笾鹨环峙涞讲煌暮蠖斯?jié)點(diǎn)服務(wù)器,這相當(dāng)于 LVS 中的 rr 算法,如果后端節(jié)點(diǎn)服務(wù)器宕機(jī)(默認(rèn)情況下nginx 只檢測80端口)。宕機(jī)的服務(wù)器會自動從節(jié)點(diǎn)服務(wù)器池中剔除,以便客戶端的用戶訪問不受影響。新的請求會分配給正產(chǎn)的服務(wù)器。

      2、權(quán)重輪詢

      wrr即weight 權(quán)重輪循,靜態(tài)調(diào)度算法。在 rr 輪循算法的基礎(chǔ)上加上權(quán)重,即為權(quán)重輪循算法,當(dāng)使用該算法時,權(quán)重和用戶訪問成正比,權(quán)重值越大,被轉(zhuǎn)發(fā)的請求也就越多??梢愿鶕?jù)服務(wù)器的配置和性能指定權(quán)重值大小,有效解決新舊服務(wù)器性能不均帶來的請求分配問題。

      3、IP哈希

      ip_hash是靜態(tài)調(diào)度算法,每個請求按客戶端 IP 的 hash 結(jié)果分配,當(dāng)新的請求到達(dá)時,先將其客戶端IP通過哈希算法哈希出一個值,在隨后的客戶端請求中,客戶 IP 的哈希值只要相同,就會被分配至同一臺服務(wù)器,該調(diào)度算法可以解決動態(tài)網(wǎng)頁的 session 共享問題,但有時會導(dǎo)致請求分配不均,即無法保證 1:1 的負(fù)載均衡,因?yàn)樵趪鴥?nèi)大多數(shù)公司都是 NAT 上網(wǎng)模式,多個客戶端會對應(yīng)一個外部 IP,所以,這些客戶端都會被分配到同一節(jié)點(diǎn)服務(wù)器,從而導(dǎo)致請求分配不均。LVS 負(fù)載均衡的 -P 參數(shù)、keepalived 配置里的 persistence_timeout 50 參數(shù)都類似這個 Nginx 里的 ip_hash 參數(shù),其功能均為解決動態(tài)網(wǎng)頁的 session 共享問題。

      4、最小連接數(shù)

      least_conn是動態(tài)調(diào)度算法,會根據(jù)后端節(jié)點(diǎn)的連接數(shù)來決定分配情況,哪個機(jī)器連接數(shù)少就分發(fā)。

      5、最短響應(yīng)時間

      最短響應(yīng)時間(fair)調(diào)度算法是動態(tài)調(diào)度算法,會根據(jù)后端節(jié)點(diǎn)服務(wù)器的響應(yīng)時間來分配請求,響應(yīng)時間端的優(yōu)先分配。這是更加智能的調(diào)度算法。此種算法可以依據(jù)頁面大小和加載時間長短只能地進(jìn)行負(fù)載均衡,也就是根據(jù)后端服務(wù)器的響應(yīng)時間來分配請求,響應(yīng)時間短的優(yōu)先分配。Nginx 本身是不支持 fair 調(diào)度算法的,如果需要使用這種調(diào)度算法,必須下載 Nginx 的相關(guān)模塊 upstream_fair。

      6、url_hash算法

      url_hash算法是動態(tài)調(diào)度算法,按訪問 URL 的 hash 結(jié)果來分配請求,使每個 URL 定向到同一個后端服務(wù)器,可以進(jìn)一步提高后端緩存服務(wù)器的效率命中率。(多用于后端服務(wù)器為緩存時的場景下)Nginx 本身是不支持 rul_hash的,如果需要使用這種調(diào)度算法,必須安裝 Nginx 的hash 模塊軟件包。

      三、配置示例

      1、配置示例模板

      upstream backend {    server backend1.example.com       weight=5;  #執(zhí)行realserver,可以賦權(quán)重    server backend2.example.com:8080;     server unix:/tmp/backend3;    server backup1.example.com:8080   backup;  #backup表示該節(jié)點(diǎn)為熱備節(jié)點(diǎn),激活節(jié)點(diǎn)失效時啟用    server backup2.example.com:8080   down;  #下線服務(wù)器,可以在real服務(wù)器需要維護(hù)時配置}server {   listen	80;  #listen、server_name這些正常配置   server_name	www.test.com;    location / {proxy_pass http://backend;  ##反向代理執(zhí)行定義的upstream名字    }}

      2、權(quán)重輪詢配置示例

      upstream  show {server 192.168.0.141 weight=1;server 192.168.0.142 weight=2;      }

      3、ip_hash配置示例

       upstream show {ip_hash;server 192.168.0.141 ;server 192.168.0.142 ;     }

      4、fair配置示例

       upstream show {fair;server 192.168.0.141 ;server 192.168.0.142 ;     }

      5、least_conn配置示例

       upstream show {least_conn;server 192.168.0.141 ;server 192.168.0.142 ;     }

      6、url_hash配置示例

       upstream show {server 192.168.0.141 ;server 192.168.0.142 ;hash $request_uri;hash_method crc32;     }

      四、負(fù)載均衡效果展示

      1、部署2個web服務(wù)器

      分別在s142主機(jī)和s142主機(jī)部署2個Tomcat服務(wù),服務(wù)訪問頁面內(nèi)容如下:

      2、配置nginx服務(wù)

      upstream show {    ip_hash ;  #使用ip_hash負(fù)載均衡調(diào)度算法    server 192.168.10.141:8080 ;    server 192.168.10.142:8080 ;    }server {    listen	80;  #listen、server_name這些正常配置    server_name	www.test.com;    access_log /var/log/nginx/test.access.log;    location / {proxy_pass http://show;  ##反向代理執(zhí)行定義的upstream名字    }}

      3、配置域名解析

      這是模擬測試,使用測試域名,通過修改hosts文件(C:\Windows\System32\drivers\etc\hosts)實(shí)現(xiàn)直接通過域名訪問,實(shí)際應(yīng)用需要申請域名并解析。

      4、訪問域名驗(yàn)證

      5、停止s142的web服務(wù)后再次訪問

      停止s142的web服務(wù)后應(yīng)用自動切換到了s141節(jié)點(diǎn),其實(shí)upstream模塊可以作為負(fù)載均衡,更重要的是實(shí)現(xiàn)冗余,如果是單機(jī)部署的web應(yīng)用在出現(xiàn)節(jié)點(diǎn)故障時服務(wù)即無法訪問,通過upstream可以實(shí)現(xiàn)多節(jié)點(diǎn)冗余。

      6、修改調(diào)度算法為輪詢

      總結(jié)

      到此這篇關(guān)于Nginx負(fù)載均衡之upstream模塊簡介與使用的文章就介紹到這了,更多相關(guān)Nginx負(fù)載均衡upstream模塊內(nèi)容請搜索以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持!

      標(biāo)簽: Nginx
      主站蜘蛛池模板: 操操操小说 | 日韩一区在线播放 | 中文字幕亚洲欧美日韩在线不卡 | 久久精品网| 国产羞羞视频 | 亚洲高清av| 337p日本粉嫩噜噜噜 | 日韩欧美在线观看视频网站 | 黄色欧美视频 | 在线a视频| 九九热这里 | 成人免费一区二区三区视频网站 | 亚洲午夜电影 | 91精品国产一区二区三区四区在线 | 亚洲免费视频大全 | 欧美精品一区二区三区在线四季 | 欧洲精品| 永久91嫩草亚洲精品人人 | 午夜男人的天堂 | 精品91在线 | a级在线| 午夜日韩 | 精品久久久蜜桃 | 国外成人在线视频网站 | av男人电影天堂 | 精品欧美乱码久久久久久 | 亚洲自拍偷拍av | 欧美在线 | 亚洲 | 国产美女精品一区二区三区 | 在线免费观看激情视频 | 综合久久综合久久 | 亚洲精品一区二区网址 | 91在线观看免费 | 久久国产视屏 | 国产一区二区久久久 | 国产欧美精品一区二区三区四区 | 亚洲综合色视频在线观看 | 热久久这里只有精品 | 国偷自产一区二区免费视频 | 99视频这里有精品 | av男人电影天堂 |