成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Nginx http運(yùn)行狀況健康檢查配置

animabear / 2538人閱讀

摘要:服務(wù)器被標(biāo)記為不健康,并且在再次通過運(yùn)行狀況檢查之前不會(huì)向其發(fā)送客戶端請求。對于上面聲明的樣本組中的第一個(gè)服務(wù)器,運(yùn)行狀況檢查會(huì)請求。響應(yīng)必須滿足塊中定義的所有條件,以便服務(wù)器通過運(yùn)行狀況檢查。

原文鏈接:何曉東 博客

翻譯自 官方文檔
被動(dòng)檢查

對于被動(dòng)健康檢查,NGINX 和 NGINX Plus 會(huì)在事件發(fā)生時(shí)對其進(jìn)行監(jiān)控,并嘗試恢復(fù)失敗的連接。如果仍然無法恢復(fù)正常,NGINX 開源版和 NGINX Plus 會(huì)將服務(wù)器標(biāo)記為不可用,并暫時(shí)停止向其發(fā)送請求,直到它再次標(biāo)記為活動(dòng)狀態(tài)。

上游服務(wù)器標(biāo)記為不可用的條件是為每個(gè)上游服務(wù)器定義的,其中包含塊中 server 指令的參數(shù) upstream

fail_timeout - 設(shè)置服務(wù)器標(biāo)記為不可用時(shí)必須進(jìn)行多次失敗嘗試的時(shí)間,以及服務(wù)器標(biāo)記為不可用的時(shí)間(默認(rèn)為 10 秒)。

max_fails - 設(shè)置在 fail_timeout 服務(wù)器標(biāo)記為不可用期間必須發(fā)生的失敗嘗試次數(shù)(默認(rèn)為 1 次嘗試)。

在以下示例中,如果 NGINX 未能在 30 秒內(nèi)向服務(wù)器發(fā)送請求或未收到響應(yīng) 3 次,則表示服務(wù)器在 30 秒內(nèi)不可用:

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

需要注意的是如果只有一個(gè)單一的服務(wù)器組中,將 fail_timeoutmax_fails 參數(shù)被忽略,服務(wù)器永遠(yuǎn)不會(huì)標(biāo)記為不可用。

服務(wù)器慢啟動(dòng)

最近恢復(fù)的服務(wù)器很容易被連接淹沒,這可能導(dǎo)致服務(wù)器再次被標(biāo)記為不可用。慢啟動(dòng)允許上游服務(wù)器在恢復(fù)或變得可用之后逐漸將其權(quán)重從零恢復(fù)到其標(biāo)稱值。這可以指定 upstream 的 server 模塊的 slow_start 參數(shù)來完成:

upstream backend {
    server backend1.example.com slow_start=30s;
    server backend2.example.com;
    server 192.0.0.1 backup;
}

注意:如果組中只有一臺(tái)服務(wù)器,則 slow_start 參數(shù)將被忽略,而服務(wù)器永遠(yuǎn)不會(huì)被標(biāo)記位不可用狀態(tài)。慢啟動(dòng)是 NGINX Plus 的專有功能

NGINX Plus的主動(dòng)檢查

NGINX Plus 可以通過向每個(gè)服務(wù)器發(fā)送特殊的健康檢查請求并驗(yàn)證正確的響應(yīng)來定期檢查上游服務(wù)器的運(yùn)行狀況。

要啟用活動(dòng)運(yùn)行狀況檢查:

location 區(qū)塊將 requests(proxy_pass)傳遞給上游組的過程中,包含 health_check 指令:

server {
    location / {
        proxy_pass http://backend;
        health_check;
    }
}

此代碼段定義了一個(gè)服務(wù)器,它將所有請求匹配到 location / 傳遞給調(diào)用的上游組 backend。它還使用該 health_check 指令啟用高級(jí)運(yùn)行狀況監(jiān)視:默認(rèn)情況下,NGINX Plus 每五秒向組中的每個(gè)服務(wù)器發(fā)送一個(gè) "/" 請求 backend。如果任何通信錯(cuò)誤或發(fā)生超時(shí)(在服務(wù)器返回的狀態(tài)碼超出 200- 399的范圍)的健康檢查失敗。服務(wù)器被標(biāo)記為不健康,并且 NGINX Plus 在再次通過運(yùn)行狀況檢查之前不會(huì)向其發(fā)送客戶端請求。

另一個(gè)可選項(xiàng):您可以指定另一個(gè)用于運(yùn)行狀況檢查的端口,例如,用于監(jiān)視同一主機(jī)上的許多服務(wù)的運(yùn)行狀況。使用指令的 port 參數(shù)指定新端口 health_check:

server {
    location / {
        proxy_pass   http://backend;
        health_check port=8080;
    }
}

在上游服務(wù)器組,使用 zone 指令定義一個(gè)共享內(nèi)存區(qū)域:

http {
    upstream backend {
        zone backend 64k;
        server backend1.example.com;
        server backend2.example.com;
        server backend3.example.com;
        server backend4.example.com;
    }
}

該區(qū)域在所有工作進(jìn)程之間共享,并存儲(chǔ)上游組的配置。這使工作進(jìn)程能夠使用同一組計(jì)數(shù)器來跟蹤組中服務(wù)器的響應(yīng)。

可以使用 health_check 指令的參數(shù)覆蓋活動(dòng)運(yùn)行狀況檢查的默認(rèn)值:

location / {
    proxy_pass http://backend;
    health_check interval=10 fails=3 passes=2;
}

此處,該 interval 參數(shù)將運(yùn)行狀況檢查之間的延遲從默認(rèn)的 5 秒增加到 10 秒。該 fails 參數(shù)要求服務(wù)器三次運(yùn)行狀況檢查失敗時(shí),以將其標(biāo)記為運(yùn)行狀況不佳(從默認(rèn)值開始)。最后,passes 參數(shù)意味著服務(wù)器必須通過兩次連續(xù)檢查才能再次標(biāo)記為健康,而不是默認(rèn)值。

指定請求的URL

health_check 指令中指定 uri 參數(shù)來設(shè)置健康檢查請求的路由:

location / {
    proxy_pass http://backend;
    health_check uri=/some/path;
}

指定的 URI 將附加到為 upstream 塊中的服務(wù)器設(shè)置的服務(wù)器域名或IP地址。對于backend 上面聲明的樣本組中的第一個(gè)服務(wù)器,運(yùn)行狀況檢查會(huì)請求URI http://backend1.example.com/s...。

定義自定義條件

您可以設(shè)置響應(yīng)必須滿足的自定義條件,以便服務(wù)器通過運(yùn)行狀況檢查。條件在match塊中定義,該塊match在health_check指令的參數(shù)中引用。

http {} 級(jí)別,指定 match {} 塊并為其命名,例如:"server_ok"

http {
    #...

    match server_ok {
        # tests are here
        
    }
}

health_check 通過指定塊的 match 參數(shù)和 match 參數(shù)塊的名稱:

http {
    #...

    match server_ok {
        status 200-399;
        body !~ "maintenance mode";
    }
    server {
        #...
        
        location / {
            proxy_pass http://backend;
            health_check match=server_ok;
        }
    }
}

如果響應(yīng)的狀態(tài)代碼在范圍中,則傳遞運(yùn)行狀況檢查 200- 399 并且其正文不包含字符串: "maintenance mode"

該 match 指令使 NGINX Plus 能夠檢查狀態(tài)代碼,標(biāo)題字段和響應(yīng)正文。使用此指令可以驗(yàn)證狀態(tài)是否在指定范圍內(nèi),響應(yīng)是否包含標(biāo)頭,或者標(biāo)頭或正文是否與正則表達(dá)式匹配。該 match 指令可以包含一個(gè)狀態(tài)條件,一個(gè)正文條件和多個(gè)標(biāo)題條件。響應(yīng)必須滿足 match 塊中定義的所有條件,以便服務(wù)器通過運(yùn)行狀況檢查。

例如,下面的 match 指令匹配有狀態(tài)代碼響應(yīng) 200,精確值 text/html 的Content-Type 標(biāo)題,頁面中的文字:"Welcome to nginx!".

match welcome {
    status 200;
    header Content-Type = text/html;
    body ~ "Welcome to nginx!";
}

以下示例使用感嘆號(hào)(!)來定義響應(yīng)不得通過運(yùn)行狀況檢查的特征。在這種情況下,健康檢查在非 301,302,303,或 307狀態(tài)碼,同時(shí)并沒有 Refresh 頭信息時(shí)將通過檢查,。

match not_redirect {
    status ! 301-303 307;
    header ! Refresh;
}

健康檢查可以在其他非 HTTP 協(xié)議中啟用, 例如 FastCGI, memcached, SCGI, uwsgi 甚至 TCP 和 UDP。

很多很好的特性,就是需要 Nginx Plus 才能使用。

順道推薦幾個(gè)質(zhì)量不錯(cuò)的小冊 → 去看看

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/31515.html

相關(guān)文章

  • Nginx http運(yùn)行狀況健康檢查配置

    摘要:服務(wù)器被標(biāo)記為不健康,并且在再次通過運(yùn)行狀況檢查之前不會(huì)向其發(fā)送客戶端請求。對于上面聲明的樣本組中的第一個(gè)服務(wù)器,運(yùn)行狀況檢查會(huì)請求。響應(yīng)必須滿足塊中定義的所有條件,以便服務(wù)器通過運(yùn)行狀況檢查。 原文鏈接:何曉東 博客 翻譯自 官方文檔 被動(dòng)檢查 對于被動(dòng)健康檢查,NGINX 和 NGINX Plus 會(huì)在事件發(fā)生時(shí)對其進(jìn)行監(jiān)控,并嘗試恢復(fù)失敗的連接。如果仍然無法恢復(fù)正常,NGINX...

    daydream 評(píng)論0 收藏0
  • Nginx 學(xué)習(xí)總結(jié)(6) —— 負(fù)載均衡

    摘要:實(shí)現(xiàn)負(fù)載均衡負(fù)載均衡是反向代理技術(shù)的一種運(yùn)用。而實(shí)現(xiàn)負(fù)載均衡的核心在于如何將請求合理地分配給不同的后端服務(wù)器。 這是 Nginx 學(xué)習(xí)總結(jié)的第六篇,上一篇介紹到了 Nginx 學(xué)習(xí)總結(jié)(5) —— 反向代理,本文主要演示結(jié)合 proxy 和 upstream 模塊的使用來實(shí)現(xiàn) Nginx 的負(fù)載均衡。 Nginx 官網(wǎng)中對 upstream 模塊的介紹:ngx_http_upstrea...

    wwq0327 評(píng)論0 收藏0
  • 負(fù)載均衡-私有云負(fù)載均衡

    摘要:當(dāng)負(fù)載均衡器接受到來自客戶端的請求后,會(huì)通過一系列負(fù)載均衡算法,將訪問請求路由分發(fā)到后端虛擬機(jī)服務(wù)器池進(jìn)行請求處理,同時(shí)由將處理結(jié)果返回給客戶端。支持內(nèi)網(wǎng)和外網(wǎng)兩種類型負(fù)載均衡器,滿足內(nèi)網(wǎng)數(shù)據(jù)中心及互聯(lián)網(wǎng)服務(wù)負(fù)載均衡應(yīng)用場景。4.7.1 負(fù)載均衡概述負(fù)載均衡( Load Balance )是由多臺(tái)服務(wù)器以對稱的方式組成一個(gè)服務(wù)器集合,每臺(tái)服務(wù)器都具有等價(jià)的地位,均可單獨(dú)對外提供服務(wù)而無須其它...

    ernest.wang 評(píng)論0 收藏0
  • 反向代理 and 負(fù)載均衡

    摘要:負(fù)載均衡的平衡機(jī)制輪詢,向應(yīng)用服務(wù)器的請求以循環(huán)方式分發(fā)。服務(wù)器健康檢查中的反向代理實(shí)現(xiàn)包括帶內(nèi)或被動(dòng)服務(wù)器運(yùn)行狀況檢查。 nginx 負(fù)載均衡的平衡機(jī)制 輪詢,向應(yīng)用服務(wù)器的請求以循環(huán)方式分發(fā)。 最少連接,下一個(gè)請求被分配給具有最少數(shù)量活動(dòng)連接的服務(wù)器(最清閑的服務(wù)器)。 ip-hash,哈希函數(shù)用于確定下一個(gè)請求(基于客戶端的IP地址)應(yīng)選擇哪個(gè)服務(wù)器(相同IP 的發(fā)送到同一個(gè)服...

    OnlyLing 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<