真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Nginx中怎么配置負(fù)載均衡

這篇文章將為大家詳細(xì)講解有關(guān)Nginx中怎么配置負(fù)載均衡,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對(duì)相關(guān)知識(shí)有一定的了解。

創(chuàng)新互聯(lián)專注于迎澤企業(yè)網(wǎng)站建設(shè),響應(yīng)式網(wǎng)站,電子商務(wù)商城網(wǎng)站建設(shè)。迎澤網(wǎng)站建設(shè)公司,為迎澤等地區(qū)提供建站服務(wù)。全流程按需設(shè)計(jì),專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務(wù)

1、后端服務(wù)器

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

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

第一個(gè) backend 是用域名指定的。第二個(gè) backend 是用 IP 和端口號(hào)指定的。第三個(gè) backend 是用 UNIX 套接字指定的。

2、負(fù)載均衡策略

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

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

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

這種策略中,用于進(jìn)行 hash 運(yùn)算的 key,是 client 的 C 類 IP 地址(C 類 IP 地址就是范圍在 192.0.0.0 到 223.255.255.255 之間,前三段號(hào)碼表示子網(wǎng),第四段號(hào)碼為本地主機(jī)的 IP 地址類別)。這樣的方式保證一個(gè) client 每次請(qǐng)求都將到達(dá)同一個(gè) backend。當(dāng)然,如果所 hash 到的 backend 當(dāng)前不可用,則請(qǐng)求會(huì)被轉(zhuǎn)移到其他 backend。

再介紹一個(gè)和 ip_hash 配合使用的關(guān)鍵字:down。當(dāng)某個(gè)一個(gè) server 暫時(shí)性的宕機(jī)(down)時(shí),你可以使用“down”來(lái)標(biāo)示出來(lái),并且這樣被標(biāo)示的 server 就不會(huì)接受請(qǐng)求去處理。具體如下:

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

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

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

默認(rèn)情況下 weight 為 1,對(duì)于上面的例子,第一個(gè) server 的權(quán)重取默認(rèn)值 1,第二個(gè)是 4,所以相當(dāng)于第一個(gè) server 接收 20% 的請(qǐng)求,第二接收 80% 的。要注意的是 weight 與 ip_hash 是不能同時(shí)使用的,原因很簡(jiǎn)單,他們是不同且彼此沖突的策略。

3、重試策略

可以為每個(gè) backend 指定最大的重試次數(shù),和重試時(shí)間間隔。所使用的關(guān)鍵字是 max_fails 和 fail_timeout。如下所示:

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

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

有一種情況需要注意,就是 upstream 中只有一個(gè) server 時(shí),max_fails 和 fail_timeout 參數(shù)可能不會(huì)起作用。導(dǎo)致的問(wèn)題就是 nginx 只會(huì)嘗試一次 upstream 請(qǐng)求,如果失敗這個(gè)請(qǐng)求就被拋棄了 : ( ……解決的方法,比較取巧,就是在 upstream 中將你這個(gè)可憐的唯一 server 多寫(xiě)幾次,如下:

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、備機(jī)策略

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

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

關(guān)于Nginx中怎么配置負(fù)載均衡就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到。


新聞名稱:Nginx中怎么配置負(fù)載均衡
URL標(biāo)題:http://weahome.cn/article/jddcgd.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部