国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

ngx_healthcheck_module intro

wenshi11019 / 580人閱讀

摘要:相比之下,這個第三方模塊可以對后端服務器提供主動式的健康狀態檢測。向后端發送的健康檢查包的間隔。如果連續成功次數達到,服務器就被認為是。只有配置塊中支持類型檢查發送請求,通過后端的回復包的狀態來判斷后端是否存活。指定后端服務器的檢查端口。

ngx-healthcheck-module

Health-checker for Nginx upstream servers (support http upstream && stream upstream)

該模塊可以為Nginx提供主動式后端服務器健康檢查的功能(同時支持四層和七層后端服務器的健康檢測)。

Table of Contents

Status

Description

Installation

Usage

Synopsis && Directive

healthcheck

check

Bugs and Patches

Author

Copyright and License

See Also

Status

This nginx module is still under development, you can help improve and it.

這個項目還在開發中完善中,歡迎貢獻代碼,或報告bug。一起使它變得更好。

Description

當你使用nginx作為負載均衡器時,nginx原生只提供了基本的重試方式來保證訪問到正常的后端服務器。

相比之下,這個nginx第三方模塊可以對后端服務器提供主動式的健康狀態檢測。
它維護了一個后端服務器列表,保證新的請求直接發送到一個健康的后端服務器。

主要特性:

同時支持四層和七層后端服務器的健康檢測

四層支持的檢測類型:tcp / udp / http

七層支持的檢測類型:http / fastcgi

提供一個統一的http狀態查詢接口,輸出格式:html / json / csv

Installation
git clone https://github.com/nginx/nginx/nginx.git
git clone https://github.com/zhouchangxun/ngx_healthcheck_module.git

cd nginx/; 
git apply ../ngx_healthcheck_module/nginx-stable-1.12+.patch

./auto/configure --with-stream --add-module=../ngx_healthcheck_module/
make && make install

Back to TOC

Usage nginx.conf example
user  root;
worker_processes  1;
error_log  logs/error.log  info;
#pid        logs/nginx.pid;

events {
    worker_connections  1024;
}

http {
    server {
        listen 80;
        # status interface
        location /status {
            healthcheck_status;
        }
        # http front
        location / { 
          proxy_pass http://http-cluster;
        }   
    }
    # as a backend server.
    server {
        listen 8080;
        location / {
          root html;
        }
    }
    
    upstream http-cluster {
        # simple round-robin
        server 127.0.0.1:8080;
        server 127.0.0.2:81;

        check interval=3000 rise=2 fall=5 timeout=5000 type=http;
        check_http_send "GET / HTTP/1.0

";
        check_http_expect_alive http_2xx http_3xx;
    }
}

stream {
    upstream tcp-cluster {
        # simple round-robin
        server 127.0.0.1:22;
        server 192.168.0.2:22;
        check interval=3000 rise=2 fall=5 timeout=5000 default_down=true type=tcp;
    }
    server {
        listen 522;
        proxy_pass tcp-cluster;
    }
    
    upstream udp-cluster {
        # simple round-robin
        server 127.0.0.1:53;
        server 8.8.8.8:53;
        check interval=3000 rise=2 fall=5 timeout=5000 default_down=true type=udp;
    }
    server {
        listen 53;
        proxy_pass udp-cluster;
    }
    
}
status interface

One typical output is

root@changxun-PC:~/nginx-dev/ngx_healthcheck_module# curl localhost/status
{"servers": {
  "total": 6,
  "generation": 3,
  "http": [
    {"index": 0, "upstream": "http-cluster", "name": "127.0.0.1:8080", "status": "up", "rise": 119, "fall": 0, "type": "http", "port": 0},
    {"index": 1, "upstream": "http-cluster", "name": "127.0.0.2:81", "status": "down", "rise": 0, "fall": 120, "type": "http", "port": 0}
  ],
  "stream": [
    {"index": 0, "upstream": "tcp-cluster", "name": "127.0.0.1:22", "status": "up", "rise": 22, "fall": 0, "type": "tcp", "port": 0},
    {"index": 1, "upstream": "tcp-cluster", "name": "192.168.0.2:22", "status": "down", "rise": 0, "fall": 7, "type": "tcp", "port": 0},
    {"index": 2, "upstream": "udp-cluster", "name": "127.0.0.1:53", "status": "down", "rise": 0, "fall": 120, "type": "udp", "port": 0},
    {"index": 3, "upstream": "udp-cluster", "name": "8.8.8.8:53", "status": "up", "rise": 3, "fall": 0, "type": "udp", "port": 0}
  ]
}}
root@changxun-PC:~/nginx-dev/ngx_healthcheck_module# 

Back to TOC

Synopsis check

Syntax:

check interval=milliseconds  
[fall=count] [rise=count] [timeout=milliseconds]
[default_down=true|false] [type=tcp|udp|http] [port=check_port]

Default: interval=30000 fall=5 rise=2 timeout=1000 default_down=true type=tcp

Context: http/upstream || stream/upstream

該指令可以打開后端服務器的健康檢查功能。

Detail:

interval:向后端發送的健康檢查包的間隔。

fall(fall_count): 如果連續失敗次數達到fall_count,服務器就被認為是down。

rise(rise_count): 如果連續成功次數達到rise_count,服務器就被認為是up。

timeout: 后端健康請求的超時時間。

default_down: 設定初始時服務器的狀態,如果是true,就說明默認是down的,如果是false,就是up的。
默認值是true,也就是一開始服務器認為是不可用,要等健康檢查包達到一定成功次數以后才會被認為是健康的。

type:健康檢查包的類型,現在支持以下多種類型

tcp:簡單的tcp連接,如果連接成功,就說明后端正常。

udp:簡單的發送udp報文,如果收到icmp error(主機或端口不可達),就說明后端異常。(只有stream配置塊中支持udp類型檢查)

http:發送HTTP請求,通過后端的回復包的狀態來判斷后端是否存活。

port: 指定后端服務器的檢查端口。你可以指定不同于真實服務的后端服務器的端口,

比如后端提供的是443端口的應用,你可以去檢查80端口的狀態來判斷后端健康狀況。默認是0,表示跟后端server提供真實服務的端口一樣。

A example as followed:

stream {
    upstream tcp-cluster {
        # simple round-robin
        server 127.0.0.1:22;
        server 192.168.0.2:22;
        check interval=3000 rise=2 fall=5 timeout=5000 default_down=true type=tcp;
    }
    server {
        listen 522;
        proxy_pass tcp-cluster;
    }
    ...
}
healthcheck

Syntax: healthcheck_status [html|csv|json]

Default: healthcheck_status html

Context: http/server/location

A example as followed:

http {
    server {
        listen 80;
        
        # status interface
        location /status {
            healthcheck_status;
        }
     ...
}

Back to TOC

Todo List

增加測試用例

整理、優化代碼

規范代碼中的log輸出

Back to TOC

Bugs and Patches

Please report bugs

create GitHub Issue,

or submit patches by

new Pull request

Back to TOC

Author

Chance Chou (周長勛) .

Back to TOC

Copyright and License

The health check part is based on Yaoweibin"s

healthcheck module nginx_upstream_check_module
();

This module is licensed under the BSD license.

Copyright (C) 2017-, by Changxun Zhou

Copyright (C) 2014 by Weibin Yao

All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Back to TOC

See Also

nginx: http://nginx.org

Back to TOC

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/39889.html

相關文章

  • Linkedin Intro的釣魚研究

    摘要:年月日,我聯系了的安全團隊,并會在近期發布修復補丁來解決下面的問題。有關月日,推出一個名為的應用程序。會對你的做些什么為了更好地觀察的行為,目前我正對其進行更深入的分析研究,并很快就會發布。釣魚去啦為達教學目的,我已經建立了一個基本的模板。 2013年10月28日,我聯系了Linkedin的安全團隊,并會在近期發布修復補丁來解決下面的問題。這個修復程序適用于隨機生成ID的styling...

    lykops 評論0 收藏0
  • Linkedin Intro的釣魚研究

    摘要:年月日,我聯系了的安全團隊,并會在近期發布修復補丁來解決下面的問題。有關月日,推出一個名為的應用程序。會對你的做些什么為了更好地觀察的行為,目前我正對其進行更深入的分析研究,并很快就會發布。釣魚去啦為達教學目的,我已經建立了一個基本的模板。 2013年10月28日,我聯系了Linkedin的安全團隊,并會在近期發布修復補丁來解決下面的問題。這個修復程序適用于隨機生成ID的styling...

    wenshi11019 評論0 收藏0
  • 由一道題圖解JavaScript的作用域

    摘要:當我將此題的作用域鏈畫出來之后,終于感覺作用域入門了。創建函數的作用域鏈,并初始化為函數的所包含的對象,即包含了的作用域鏈。 作用域 為了理解作用域,跪看了好幾篇大神的博文,終于略知一二。 1.題目 其中,看到這樣一道題(稍作修改): function factory() { var name = laruence; var intro = function(){...

    nevermind 評論0 收藏0
  • JQuery基礎——選擇器

    摘要:通過,可以選取查詢,元素,并對它們執行操作可以簡寫成元素選擇器使用選擇器來選取元素。屬性選擇器使用表達式來選擇帶有給定屬性的元素。選擇器選擇器可用于改變元素的屬性。 通過 jQuery,可以選取(查詢,query) HTML 元素,并對它們執行操作(actions) $(document).ready(function(){})可以簡寫成$(funtion(){}) jQuery 元...

    taowen 評論0 收藏0
  • JQuery基礎——選擇器

    摘要:通過,可以選取查詢,元素,并對它們執行操作可以簡寫成元素選擇器使用選擇器來選取元素。屬性選擇器使用表達式來選擇帶有給定屬性的元素。選擇器選擇器可用于改變元素的屬性。 通過 jQuery,可以選取(查詢,query) HTML 元素,并對它們執行操作(actions) $(document).ready(function(){})可以簡寫成$(funtion(){}) jQuery 元...

    GraphQuery 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<