摘要:本身是不支持的,如果需要使用這種調(diào)度算法,必須下載的模塊。表示當(dāng)前的暫時(shí)不參與負(fù)載。允許請(qǐng)求失敗的次數(shù),默認(rèn)為。當(dāng)超過最大次數(shù)時(shí),返回模塊定義的錯(cuò)誤。
nginx 的 upstream 模塊 負(fù)載均衡分配策略 普通輪詢(默認(rèn))
每個(gè)請(qǐng)求按時(shí)間順序逐一分配到不同的后端服務(wù)器,如果后端某臺(tái)服務(wù)器宕機(jī),故障系統(tǒng)被自動(dòng)剔除,使用戶訪問不受影響。
upstream backend { server 192.168.0.1; server 192.168.0.1; }加權(quán)輪詢(前者的進(jìn)化版)
weight 指定輪詢的權(quán)值,weight值越大,分配到的訪問機(jī)率越高,此策略主要用于后端每個(gè)服務(wù)器性能不均的情況下。
upstream backend { server 192.168.0.1 weight=10; server 192.168.0.2 weight=20; # 這臺(tái)服務(wù)器性能好 所以設(shè)置weight=30 使之被訪問的幾率最大 server 192.168.0.3 weight=30; }ip_hash
每個(gè)請(qǐng)求按訪問IP的hash結(jié)果分配,這樣來自同一個(gè)IP的訪客固定訪問一個(gè)后端服務(wù)器,可以解決session不能跨服務(wù)器的問題。當(dāng)然如果這個(gè)節(jié)點(diǎn)不可用了,會(huì)發(fā)到下個(gè)節(jié)點(diǎn),而此時(shí)沒有session同步的話就注銷掉了。
upstream backend { ip_hash; server 192.168.0.1:88; server 192.168.0.1:80; }least_conn
請(qǐng)求被發(fā)送到當(dāng)前活躍連接最少的后端服務(wù)器。會(huì)考慮weight的值。如果有多個(gè)后端服務(wù)器的 conns 值同為最小的,那么對(duì)它們采用加權(quán)輪詢算法(weight)。
upstream backend { least_conn; server 192.168.0.1:88; server 192.168.0.1:80; }fair(upstream_fair模塊)
根據(jù)后端服務(wù)器的響應(yīng)時(shí)間來分配請(qǐng)求,響應(yīng)時(shí)間短的優(yōu)先分配。Nginx本身是不支持 fair 的,如果需要使用這種調(diào)度算法,必須下載Nginx的 upstream_fair 模塊。
upstream backend { server 192.168.0.14:88; server 192.168.0.15:80; fair; }url_hash(nginx _upstream_hash模塊)
此方法按訪問 url 的 hash 結(jié)果來分配請(qǐng)求,使每個(gè) url 定向到同一個(gè)后端服務(wù)器,可以進(jìn)一步提高后端緩存服務(wù)器的效率。Nginx 本身是不支持 url _ hash 的,如果需要使用這種調(diào)度算法,必須下載 Nginx 的 nginx_upstream_hash 模塊。
upstream backend { server 192.168.0.1; server 192.168.0.2; hash $request_uri; hash_method crc32; }server 支持的參數(shù)說明
upstream backend { server 192.168.0.1; server 192.168.0.2:8080 weight=1 max_fails=2 fail_timeout=30s ; server 192.168.0.3:8080 backup; } server { location / { proxy_pass http://backend; proxy_next_upstream error|timeout|..; } } weight:輪詢權(quán)值,默認(rèn)值為1。 down:表示當(dāng)前的server暫時(shí)不參與負(fù)載。 max_fails:允許請(qǐng)求失敗的次數(shù),默認(rèn)為1。當(dāng)超過最大次數(shù)時(shí),返回 proxy_next_upstream 模塊定義的錯(cuò)誤。 fail_timeout:有兩層含義,一是在fail_timeout時(shí)間內(nèi)最多容許max_fails次失??;二是在經(jīng)歷了max_fails次失敗以后,30s時(shí)間內(nèi)不分配請(qǐng)求到這臺(tái)服務(wù)器。 backup : 備份機(jī)器。當(dāng)其他所有的非 backup 機(jī)器出現(xiàn)故障的時(shí)候,才會(huì)請(qǐng)求backup機(jī)器,因此這臺(tái)機(jī)器的壓力最輕。 max_conns: 限制同時(shí)連接到某臺(tái)后端服務(wù)器的連接數(shù),默認(rèn)為 0。即無限制。 proxy_next_upstream : 這個(gè)指令屬于 http_proxy 模塊的,指定后端返回什么樣的異常響應(yīng)
proxy_next_upstream 的參數(shù)說明請(qǐng)看這里
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/39435.html
摘要:實(shí)現(xiàn)負(fù)載均衡負(fù)載均衡是反向代理技術(shù)的一種運(yùn)用。而實(shí)現(xiàn)負(fù)載均衡的核心在于如何將請(qǐng)求合理地分配給不同的后端服務(wù)器。 這是 Nginx 學(xué)習(xí)總結(jié)的第六篇,上一篇介紹到了 Nginx 學(xué)習(xí)總結(jié)(5) —— 反向代理,本文主要演示結(jié)合 proxy 和 upstream 模塊的使用來實(shí)現(xiàn) Nginx 的負(fù)載均衡。 Nginx 官網(wǎng)中對(duì) upstream 模塊的介紹:ngx_http_upstrea...
摘要:這個(gè)指令屬于模塊的,指定后端返回什么樣的異常響應(yīng)時(shí),使用另一個(gè)是專門提供負(fù)載均衡器內(nèi)節(jié)點(diǎn)的健康檢查的外部模塊,由淘寶的姚偉斌大神開發(fā),通過它可以用來檢測(cè)后端的健康狀態(tài)。 關(guān)于nginx的安裝和基本配置請(qǐng)參考nginx,本文在原基礎(chǔ)上完成以下幾個(gè)功能: 結(jié)合proxy和upstream模塊實(shí)現(xiàn)nginx負(fù)載均衡 結(jié)合nginx_upstream_check_module模塊實(shí)現(xiàn)后端服...
摘要:常用的狀態(tài)有,表示當(dāng)前的暫時(shí)不參與負(fù)載均衡。當(dāng)負(fù)載調(diào)度算法為時(shí),后端服務(wù)器在負(fù)載均衡調(diào)度中的狀態(tài)不能是和。 MonkeyEye(猿眼售票系統(tǒng))項(xiàng)目地址:https://github.com/SYSUMonkeyEye/MonkeyEye-FE 反向代理概念 反向代理(Reverse Proxy)方式是指以代理服務(wù)器來接受客戶端連接請(qǐng)求,然后將請(qǐng)求轉(zhuǎn)發(fā)給內(nèi)部網(wǎng)絡(luò)上的服務(wù)器,并將從服務(wù)器上...
閱讀 1489·2021-10-14 09:43
閱讀 1455·2021-10-09 09:58
閱讀 1947·2021-09-28 09:42
閱讀 3738·2021-09-26 09:55
閱讀 1768·2021-08-27 16:23
閱讀 2769·2021-08-23 09:46
閱讀 917·2019-08-30 15:55
閱讀 1441·2019-08-30 15:54