欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Nginx http運(yùn)行狀況健康檢查配置過(guò)程解析

 更新時(shí)間:2019年08月13日 14:31:03   作者:alpha  
這篇文章主要介紹了Nginx http運(yùn)行狀況健康檢查配置過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

被動(dòng)檢查

對(duì)于被動(dòng)健康檢查,NGINX 和 NGINX Plus 會(huì)在事件發(fā)生時(shí)對(duì)其進(jìn)行監(jiān)控,并嘗試恢復(fù)失敗的連接。如果仍然無(wú)法恢復(fù)正常,NGINX 開(kāi)源版和 NGINX Plus 會(huì)將服務(wù)器標(biāo)記為不可用,并暫時(shí)停止向其發(fā)送請(qǐng)求,直到它再次標(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ā)送請(qǐng)求或未收到響應(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_timeout 和 max_fails 參數(shù)被忽略,服務(wù)器永遠(yuǎn)不會(huì)標(biāo)記為不可用。

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

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

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 的專(zhuān)有功能

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

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

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

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

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

此代碼段定義了一個(gè)服務(wù)器,它將所有請(qǐng)求匹配到 location / 傳遞給調(diào)用的上游組 backend。它還使用該 health_check 指令啟用高級(jí)運(yùn)行狀況監(jiān)視:默認(rèn)情況下,NGINX Plus 每五秒向組中的每個(gè)服務(wù)器發(fā)送一個(gè) “/” 請(qǐng)求 backend。

如果任何通信錯(cuò)誤或發(fā)生超時(shí)(在服務(wù)器返回的狀態(tài)碼超出 200- 399的范圍)的健康檢查失敗。服務(wù)器被標(biāo)記為不健康,并且 NGINX Plus 在再次通過(guò)運(yùn)行狀況檢查之前不會(huì)向其發(fā)送客戶(hù)端請(qǐng)求。

另一個(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;
 }
}

2.在上游服務(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ù)器來(lái)跟蹤組中服務(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)值開(kāi)始)。最后,passes 參數(shù)意味著服務(wù)器必須通過(guò)兩次連續(xù)檢查才能再次標(biāo)記為健康,而不是默認(rèn)值。

指定請(qǐng)求的URL

在 health_check 指令中指定 uri 參數(shù)來(lái)設(shè)置健康檢查請(qǐng)求的路由:

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

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

定義自定義條件

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

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

http {
 #... 
 match server_ok {
   # tests are here     
 }
}

2.health_check 通過(guò)指定塊的 match 參數(shù)和 match 參數(shù)塊的名稱(chēng):

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)必須滿(mǎn)足 match 塊中定義的所有條件,以便服務(wù)器通過(guò)運(yùn)行狀況檢查。

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

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

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

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

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

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

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Windows系統(tǒng)下安裝及部署Nginx詳細(xì)教程(含多個(gè)站點(diǎn)部署)

    Windows系統(tǒng)下安裝及部署Nginx詳細(xì)教程(含多個(gè)站點(diǎn)部署)

    Nginx是一個(gè)很強(qiáng)大的高性能Web和反向代理服務(wù),也是一種輕量級(jí)的Web服務(wù)器,可以作為獨(dú)立的服務(wù)器部署網(wǎng)站,應(yīng)用非常廣泛,這篇文章主要給大家介紹了關(guān)于Windows系統(tǒng)下安裝及部署Nginx(含多個(gè)站點(diǎn)部署)的相關(guān)資料,需要的朋友可以參考下
    2024-01-01
  • 一文搞懂Nginx限流(簡(jiǎn)單實(shí)現(xiàn))

    一文搞懂Nginx限流(簡(jiǎn)單實(shí)現(xiàn))

    這篇文章主要介紹了一文搞懂Nginx限流(簡(jiǎn)單實(shí)現(xiàn)),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2019-05-05
  • 詳解Nginx的超時(shí)keeplive_timeout配置步驟

    詳解Nginx的超時(shí)keeplive_timeout配置步驟

    Nginx 處理的每個(gè)請(qǐng)求均有相應(yīng)的超時(shí)設(shè)置,本文主要介紹了Nginx的超時(shí)keeplive_timeout配置步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • 詳解nginx 配置文件解讀

    詳解nginx 配置文件解讀

    這篇文章主要介紹了詳解nginx 配置文件解讀,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • 詳解Nginx如何配置繼承模型

    詳解Nginx如何配置繼承模型

    這篇文章主要介紹了詳解Nginx如何配置繼承模型,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-07-07
  • Nginx的配置文件結(jié)構(gòu)和各種配置指令

    Nginx的配置文件結(jié)構(gòu)和各種配置指令

    Nginx是一款高性能的Web服務(wù)器和反向代理服務(wù)器,常常被用作Web服務(wù)器、負(fù)載均衡器、反向代理和緩存服務(wù)器等,本文將詳細(xì)介紹Nginx的配置文件結(jié)構(gòu)和各種配置指令,幫助你理解和正確配置Nginx?服務(wù)器
    2024-03-03
  • 修改nginx服務(wù)器類(lèi)型實(shí)現(xiàn)簡(jiǎn)單偽裝(隱藏nginx類(lèi)型與版本等)

    修改nginx服務(wù)器類(lèi)型實(shí)現(xiàn)簡(jiǎn)單偽裝(隱藏nginx類(lèi)型與版本等)

    這篇文章主要介紹了修改nginx服務(wù)器類(lèi)型實(shí)現(xiàn)簡(jiǎn)單偽裝(隱藏nginx類(lèi)型與版本等),需要的朋友可以參考下
    2016-03-03
  • 使用nginx同域名下部署多個(gè)vue項(xiàng)目并使用反向代理的方法

    使用nginx同域名下部署多個(gè)vue項(xiàng)目并使用反向代理的方法

    這篇文章主要介紹了使用nginx同域名下部署多個(gè)vue項(xiàng)目并使用反向代理的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2019-02-02
  • Nginx+Tomcat負(fù)載均衡集群的實(shí)現(xiàn)示例

    Nginx+Tomcat負(fù)載均衡集群的實(shí)現(xiàn)示例

    本文主要介紹了Nginx + Tomcat負(fù)載均衡集群的實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-10-10
  • nginx刷新頁(yè)面出現(xiàn)404解決方案(親測(cè)有效)

    nginx刷新頁(yè)面出現(xiàn)404解決方案(親測(cè)有效)

    本文主要介紹了nginx刷新頁(yè)面出現(xiàn)404解決方案,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-03-03

最新評(píng)論