亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Nginx中怎么配置負載均衡

發布時間:2021-06-18 16:02:48 來源:億速云 閱讀:130 作者:Leah 欄目:大數據

這篇文章將為大家詳細講解有關Nginx中怎么配置負載均衡,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。

1、后端服務器

通過 upstream 可以設定后端服務器,指定的方式可以是 IP 地址與端口、域名、UNIX 套接字(socket)。其中如果域名可以被解析為多個地址,則這些地址都作為 backend。下面舉例說明:

upstream backend {
    server blog.csdn.net/poechant;
    server 145.223.156.89:8090;
    server unix:/tmp/backend3;
}

第一個 backend 是用域名指定的。第二個 backend 是用 IP 和端口號指定的。第三個 backend 是用 UNIX 套接字指定的。

2、負載均衡策略

Nginx 提供輪詢(round robin)、用戶 IP 哈希(client IP)和指定權重 3 種方式。

默認情況下,Nginx 會為你提供輪詢作為負載均衡策略。但是這并不一定能夠讓你滿意。比如,某一時段內的一連串訪問都是由同一個用戶 Michael 發起的,那么第一次 Michael 的請求可能是 backend2,而下一次是 backend3,然后是 backend1、backend2、backend3…… 在大多數應用場景中,這樣并不高效。當然,也正因如此,Nginx 為你提供了一個按照 Michael、Jason、David 等等這些亂七八糟的用戶的 IP 來 hash 的方式,這樣每個 client 的訪問請求都會被甩給同一個后端服務器。具體的使用方式如下:

upstream backend {
    ip_hash;
    server backend1.example.com;
    server backend2.example.com;
    server.backend3.example.com;
}

這種策略中,用于進行 hash 運算的 key,是 client 的 C 類 IP 地址(C 類 IP 地址就是范圍在 192.0.0.0 到 223.255.255.255 之間,前三段號碼表示子網,第四段號碼為本地主機的 IP 地址類別)。這樣的方式保證一個 client 每次請求都將到達同一個 backend。當然,如果所 hash 到的 backend 當前不可用,則請求會被轉移到其他 backend。

再介紹一個和 ip_hash 配合使用的關鍵字:down。當某個一個 server 暫時性的宕機(down)時,你可以使用“down”來標示出來,并且這樣被標示的 server 就不會接受請求去處理。具體如下:

upstream backend {
    server blog.csdn.net/poechant down;
    server 145.223.156.89:8090;
    server unix:/tmp/backend3;
}

還可以使用指定權重(weight)的方式,如下:

upstream backend {
    server backend1.example.com;
    server 123.321.123.321:456 weight=4;
}

默認情況下 weight 為 1,對于上面的例子,第一個 server 的權重取默認值 1,第二個是 4,所以相當于第一個 server 接收 20% 的請求,第二接收 80% 的。要注意的是 weight 與 ip_hash 是不能同時使用的,原因很簡單,他們是不同且彼此沖突的策略。

3、重試策略

可以為每個 backend 指定最大的重試次數,和重試時間間隔。所使用的關鍵字是 max_fails 和 fail_timeout。如下所示:

upstream backend {
    server backend1.example.com weight=5;
    server 54.244.56.3:8081 max_fails=3 fail_timeout=30s;
}

在上例中,最大失敗次數為 3,也就是最多進行 3 次嘗試,且超時時間為 30秒。max_fails 的默認值為 1,fail_timeout 的默認值是 10s。傳輸失敗的情形,由 proxy_next_upstream 或 fastcgi_next_upstream 指定。而且可以使用 proxy_connect_timeout 和 proxy_read_timeout 控制 upstream 響應時間。

有一種情況需要注意,就是 upstream 中只有一個 server 時,max_fails 和 fail_timeout 參數可能不會起作用。導致的問題就是 nginx 只會嘗試一次 upstream 請求,如果失敗這個請求就被拋棄了 : ( ……解決的方法,比較取巧,就是在 upstream 中將你這個可憐的唯一 server 多寫幾次,如下:

upstream backend {
    server backend.example.com max_fails fail_timeout=30s;
    server backend.example.com max_fails fail_timeout=30s;
    server backend.example.com max_fails fail_timeout=30s;
}

4、備機策略

從 Nginx 的 0.6.7 版本開始,可以使用“backup”關鍵字。當所有的非備機(non-backup)都宕機(down)或者繁忙(busy)的時候,就只使用由 backup 標注的備機。必須要注意的是,backup 不能和 ip_hash 關鍵字一起使用。舉例如下:

upstream backend {
    server backend1.example.com;
    server backend2.example.com backup;
    server backend3.example.com;
}

關于Nginx中怎么配置負載均衡就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

特克斯县| 宿州市| 萍乡市| 凤凰县| 印江| 宝鸡市| 蒲江县| 田阳县| 恩平市| 公安县| 吉林省| 财经| 凤冈县| 依兰县| 堆龙德庆县| 广水市| 满城县| 平乐县| 化德县| 芒康县| 清徐县| 宁南县| 绿春县| 南皮县| 延津县| 平远县| 紫阳县| 石林| 靖边县| 奎屯市| 罗城| 石泉县| 汕尾市| 兴和县| 唐海县| 修文县| 武义县| 元江| 宣威市| 定结县| 上饶市|