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

nginx中的健康檢查方案

 更新時間:2024年01月26日 15:01:57   作者:fangs39224  
這篇文章主要介紹了nginx中的健康檢查方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

ngx_http_proxy_module模塊(自帶) 超時時間設(shè)置

無特別場景需求都可直接采用默認60s

  • 語法:proxy_connect_timeout ``time``;
  • 默認值:proxy_connect_timeout 60s;
  • 作用域:http, server, location

該指令設(shè)置與upstream server的連接超時時間,有必要記住,這個超時不能超過75秒。這個時間Nginx與上游服務(wù)器

嘗試建立連接,如果60s內(nèi)都沒有建立成功,則會放棄這個連接。

  • 語法:proxy_read_timeout ``time``;
  • 默認值:proxy_read_timeout 60s;
  • 作用域:http, server, location

定義從后端服務(wù)器讀取響應(yīng)的超時。

此超時是指相鄰兩次讀操作之間的最長時間間隔,而不是整個響應(yīng)傳輸完成的最長時間。

如果后端服務(wù)器在超時時間段內(nèi)沒有傳輸任何數(shù)據(jù),連接將被關(guān)閉(連接成功后_等候后端服務(wù)器響應(yīng)時間_其實已經(jīng)進入后端的排隊之中等候處理(也可以說是后端服務(wù)器處理請求的時間))。

  • 語法:proxy_send_timeout time;
  • 默認值:proxy_send_timeout 60s;
  • 作用域:http, server, location

設(shè)置將請求傳輸?shù)酱矸?wù)器的超時。僅在兩個連續(xù)的寫操作之間設(shè)置超時,而不是為整個請求的傳輸。

如果代理服務(wù)器在此時間內(nèi)未收到任何內(nèi)容,則關(guān)閉連接。(后端服務(wù)器數(shù)據(jù)回傳時間_就是在規(guī)定時間之內(nèi)后端服務(wù)器必須傳完所有的數(shù)據(jù))。

  • 語法:proxy_next_upstream error | timeout | invalid_header | http_500 | http_502 | http_503 | http_504 |http_404 | off ...;
  • 默認值:proxy_next_upstream error timeout;
  • 作用域:http, server, location

后端返回狀態(tài)碼:指定在何種情況下一個失敗的請求應(yīng)該被發(fā)送到下一臺后端服務(wù)器

1、nginx 被動check 方法

Nginx(自帶)有健康檢查模塊:ngx_http_upstream_module,可以做到基本的健康檢查

參數(shù):

  • max_fails:失敗嘗試最大次數(shù);超出此處指定的次數(shù)時,server將被標記為不可用,默認為1
  • fail_timeout:后端服務(wù)器標記為不可用狀態(tài)的連接超時時長,默認10s
  • backup:將服務(wù)器標記為"備用",即所有服務(wù)器均不可用時才啟用

例如:

server x.x.x.x:8080 max_fails=3 fail_timeout=30s;`
server x.x.x.x:8080 max_fails=3 fail_timeout=30s;`

說明:

代表在30秒內(nèi)某一應(yīng)用失敗3次,認為該應(yīng)用宕機,后等待30秒,這期間內(nèi)不會再把新請求發(fā)送到宕機應(yīng)用,而是直接發(fā)到正常的那一臺,等待的這30秒時間到后再有請求進來繼續(xù)嘗試連接宕機應(yīng)用且僅嘗試1次,如果還是失敗,則繼續(xù)等待30秒...以此循環(huán),直到恢復。`

缺點:

Nginx只有當有訪問時后,才發(fā)起對后端節(jié)點探測。

如果本次請求中,節(jié)點正好出現(xiàn)故障,Nginx依然將請求轉(zhuǎn)交給故障的節(jié)點,然后再轉(zhuǎn)交給健康的節(jié)點處理。

所以不會影響到這次請求的正常進行。

但是會影響效率,因為多了一次轉(zhuǎn)發(fā),而且自帶模塊無法做到預警。

2、nginx 主動check 方法

nginx_upstream_check_module模塊對后端節(jié)點做主動健康檢查(淘寶開發(fā))

主動check:心跳檢測,為非業(yè)務(wù)流量,nginx本身發(fā)起健康檢測請求。

注意:check模塊版本和Nginx版本要求有限制。做補丁包的時候注意版本選擇

check指令只能出現(xiàn)在upstream中:

  • interval:向后端發(fā)送的健康檢查包的間隔。
  • fall:如果連續(xù)失敗次數(shù)達到fall_count,服務(wù)器就被認為是down。
  • rise:如果連續(xù)成功次數(shù)達到rise_count,服務(wù)器就被認為是up。
  • timeout:后端健康請求的超時時間。
  • default_down:設(shè)定初始時服務(wù)器的狀態(tài),如果是true,就說明默認是down的,如果是false,就是up的。默認值是true,也就是一開始服務(wù)器認為是不可用,要等健康檢查包達到一定成功次數(shù)以后才會被認為是健康的

健康檢查包的類型,常用(tcp\http):

  • tcp:簡單的tcp連接,連接成功,就說明后端正常(網(wǎng)絡(luò)層探測,通過發(fā)送SYN握手報文來檢測服務(wù)器端口是否存活)。
  • http:發(fā)送HTTP請求,通過后端的回復包的狀態(tài)來判斷后端是否存活
  • 不常用:ajp\ssl_hello\mysql\fastcgi
  • 說明:(將HTTP模式的負載均衡修改為TCP模式后,負載均衡將只檢查監(jiān)聽端口狀態(tài),不檢查HTTP狀態(tài),會導致負載均衡無法實時獲知HTTP應(yīng)用是否出現(xiàn)問題。)

TCP模式配置:

upstream xxxx {
    server ip:port;
    server ip:port;    
    check interval=5000 rise=2 fall=3 timeout=1000 type=tcp;
}

HTTP模式配置:(需要提供一個健康檢查的url)

upstream xxxx {
    server ip:port;
    server ip:port;    
    check interval=5000 rise=2 fall=3 timeout=1000 type=http;
    check_http_send "HEAD / HTTP/1.0\r\n\r\n"; #默認用HEAD方式 請求缺省頁
    check_http_expect_alive http_2xx http_3xx;
}

說明:

每個5秒檢測一次(單位為毫秒),請求2次正常則標記 realserver狀態(tài)為up,如果檢測 3 次都失敗,則標記 realserver的狀態(tài)為down,超時時間為1秒(單位為毫秒)。

  • check_http_send: http 請求方式 如:("GET /index.html HTTP/1.0\r\n\r\n")注意:請求的uri不宜過大
  • check_http_expect_alive: 定義健康的狀態(tài)碼
server 中配置可界面顯示后端健康狀態(tài)
location /status {
check_status;
access_log off;
}

3、目前環(huán)境配置建議:為保證業(yè)務(wù)流量無影響,優(yōu)先采用主動check方式

后端應(yīng)用未配置(提供)健康檢查url情況

upstream xxxx {
    server ip:port;
    server ip:port;    
    check interval=5000 rise=2 fall=3 timeout=1000 type=tcp;
}

后端提供健康檢查url 情況

upstream xxxx {
    server ip:port;
    server ip:port;    
    check interval=5000 rise=2 fall=3 timeout=1000 type=http;
    check_http_send "HEAD /url HTTP/1.0\r\n\r\n"; # /url指提供健康檢查的url
    check_http_expect_alive http_2xx http_3xx;
}
server 中配置。用于界面顯示后端健康狀態(tài)
location /status {
check_status;
access_log off;
}

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 使用nginx解決前端js下載跨域問題

    使用nginx解決前端js下載跨域問題

    訂單系統(tǒng)增加附件預覽,下載的功能,但是這個附件是客戶推單時推送過來的,文件連接是類似oss連接,但是是客戶的域名,所以導致跨域問題,本文小編將給大家介紹如何用nginx解決前端js下載跨域問題,需要的朋友可以參考下
    2023-10-10
  • 利用nginx和騰訊云免費證書制作https的方法

    利用nginx和騰訊云免費證書制作https的方法

    這篇文章主要介紹了利用nginx和騰訊云免費證書制作https的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-11-11
  • nginx配置將HTTPS請求轉(zhuǎn)換成HTTP的方法實現(xiàn)

    nginx配置將HTTPS請求轉(zhuǎn)換成HTTP的方法實現(xiàn)

    Nginx是一個很流行、很強大的代理軟件,我們可以借助Nginx,設(shè)置 http強轉(zhuǎn)https,本文就來詳細的介紹一下,感興趣的可以了解一下
    2023-09-09
  • 為Nginx添加SPDY功能

    為Nginx添加SPDY功能

    我也開始嘗試著給自己的論壇加上SPDY協(xié)議,WEB服務(wù)器本人選擇的是nginx,在過去,Nginx并沒有內(nèi)置SPDY協(xié)議,需要打開的話還要下載開發(fā)版然后手動編譯,很不方便
    2014-12-12
  • nginx結(jié)合keepalived實現(xiàn)高可用的完整步驟

    nginx結(jié)合keepalived實現(xiàn)高可用的完整步驟

    這篇文章主要給大家介紹了關(guān)于nginx結(jié)合keepalived實現(xiàn)高可用的完整步驟,文中通過示例代碼介紹的非常詳細,對大家學習或者使用nginx具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-12-12
  • Nginx開源可視化配置工具NginxConfig使用教程

    Nginx開源可視化配置工具NginxConfig使用教程

    這篇文章主要為大家介紹了Nginx開源可視化配置工具NginxConfig使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-06-06
  • nginx+lua+redis實現(xiàn)降級的示例代碼

    nginx+lua+redis實現(xiàn)降級的示例代碼

    隨著用戶訪問量的激增,網(wǎng)站或電商平臺可能會面臨系統(tǒng)超負載的問題,導致注冊、下單、支付等功能出現(xiàn)問題,為保障核心服務(wù)的高可用性,可以采用降級策略,本文就來介紹一下nginx+lua+redis降級,感興趣的可以了解學習
    2024-10-10
  • nginx上部署react項目的實例方法

    nginx上部署react項目的實例方法

    今天小編就為大家分享一篇關(guān)于nginx上部署react項目的實例方法,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-02-02
  • Nginx設(shè)置Referer來防止盜圖的實現(xiàn)方法

    Nginx設(shè)置Referer來防止盜圖的實現(xiàn)方法

    這篇文章主要介紹了Nginx設(shè)置Referer來防止盜圖的實現(xiàn)方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-04-04
  • 詳解Nginx中基本的內(nèi)存池初始化配置

    詳解Nginx中基本的內(nèi)存池初始化配置

    Nginx由其自己實現(xiàn)的內(nèi)存池結(jié)構(gòu)對內(nèi)存進行管理,這里我們就來詳解Nginx的基本內(nèi)存池初始化配置,需要的朋友可以參考下
    2016-07-07

最新評論