最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

nginx通過nginx_upstream_check_module實現(xiàn)后端健康檢查

 更新時間:2024年08月08日 10:44:07   作者:long_2145  
nginx的健康檢查有兩種,一種是被動健康檢查,也就是nginx自帶健康檢查模塊ngx_http_upstream_module,另一種就是主動健康檢查,使用第三方模塊nginx_upstream_check_module,下面就來介紹一下,感興趣的可以了解一下

1、簡介說明

nginx是常用的反向代理和負載均衡服務,具有強大并發(fā)能力、穩(wěn)定性、豐富的功能集、低資源的消耗。

nginx自身是沒有針對后端節(jié)點健康檢查的,但是可以通過默認自帶的ngx_http_proxy_module 模塊和ngx_http_upstream_module模塊中的相關指令來完成當后端節(jié)點出現(xiàn)故障時,自動切換到健康節(jié)點來提供訪問。

nginx的健康檢查有兩種,一種是被動健康檢查,也就是nginx自帶健康檢查模塊ngx_http_upstream_module,另一種就是主動健康檢查,使用第三方模塊nginx_upstream_check_module。

nginx被動健康檢查的缺點:

  • nginx只有被訪問時,才會發(fā)起對后端節(jié)點探測。如果本次請求中,節(jié)點正好出現(xiàn)故障,nginx依然會將請求轉交給故障的節(jié)點,然后再轉交給健康的節(jié)點處理。所以不會影響到這次請求的正常進行。由于多了一次轉發(fā),會影響效率。
  • 無法做到預警。

nginx主動健康檢查

  • 淘寶開發(fā)的tengine自帶心跳檢測模塊,若健康檢查包類型為http,在開啟健康檢查功能后,nginx會根據設置的間隔向后端服務器端口發(fā)送健康檢查包,并根據期望的HTTP狀態(tài)碼來判斷服務是否健康。后端節(jié)點不可用,則請求不會轉發(fā)到故障節(jié)點。
  • 故障節(jié)點恢復后,請求正常轉發(fā)

nginx_upstream_check_module是一個專門提供負載均衡器內節(jié)點的健康檢查的,這個是淘寶技術團隊開發(fā)的 nginx 模塊 ,通過它可以用來檢測后端 realserver 的健康狀態(tài)。如果后端 realserver 不可用,則所以的請求就不會轉發(fā)到該節(jié)點上。

淘寶的 tengine 自帶了該模塊,官方地址:http://tengine.taobao.org。如果是 nginx,可以通過補丁的方式來添加該模塊到 nginx 中(https://github.com/yaoweibin/nginx_upstream_check_module)。

2、安裝配置

2.1 下載nginx 和 nginx_upstream_check_module

# cd /usr/local/src
# wget https://nginx.org/download/nginx-1.20.2.tar.gz
# tar zxf nginx-1.20.2.tar.gz
# git clone https://github.com/yaoweibin/nginx_upstream_check_module.git
# ls -l
total 1044
drwxr-xr-x 8 1001 1001     158 Nov 16  2021 nginx-1.20.2
-rw-r--r-- 1 root root 1062124 Nov 16  2021 nginx-1.20.2.tar.gz
drwxr-xr-x 7 root root    4096 Jul 20 23:50 nginx_upstream_check_module

2.2 為nginx打補丁并編譯安裝

# cd nginx-1.20.2
# patch -p1 < /usr/local/src/nginx_upstream_check_module/check_1.20.1+.patch
patching file src/http/modules/ngx_http_upstream_hash_module.c
patching file src/http/modules/ngx_http_upstream_ip_hash_module.c
patching file src/http/modules/ngx_http_upstream_least_conn_module.c
patching file src/http/ngx_http_upstream_round_robin.c
patching file src/http/ngx_http_upstream_round_robin.h

# ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-compat --with-file-aio --with-threads --with-http_addition_module --with-http_auth_request_module --with-http_dav_module --with-http_flv_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_mp4_module --with-http_random_index_module --with-http_realip_module --with-http_secure_link_module --with-http_slice_module --with-http_ssl_module --with-http_stub_status_module --with-http_sub_module --with-http_v2_module --with-mail --with-mail_ssl_module --with-stream --with-stream_realip_module --with-stream_geoip_module --with-stream_ssl_module --with-stream_ssl_preread_module --with-pcre --with-pcre-jit --with-stream_geoip_module --add-module=/usr/local/src/nginx_upstream_check_module
# make && make install

2.3 配置案例及效果

# cat conf/conf.d/nginx_upstream_check.conf
upstream cluster{
    server 192.168.100.210:9091;
    server 192.168.100.210:9092;
    check interval=3000 rise=2 fall=2 timeout=3000 type=http;
    check_http_send "GET /ops/v1/check HTTP/1.0\r\n\r\n ";
    check_http_expect_alive http_2xx http_3xx;
}


server {
    listen       8888;
    server_name  localhost;
    #charset koi8-r;
    access_log  logs/nginx_upstream_check.log  main;

    location / {
        root   html;
        index  index.html;
    }

    location ^~ /nginxServer/ {
        proxy_pass http://cluster/;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-Proto https;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header REMOTE-HOST $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass_request_body on;
        proxy_set_header   Cookie $http_cookie;
        real_ip_header X-Real-IP;
    }

    location /nginx_status {
        check_status;
        access_log off;
    }
}

2.4 語法及指令介紹

check interval=milliseconds [fall=count] [rise=count] [timeout=milliseconds] [default_down=true|false] [type=tcp|http|ssl_hello|mysql|ajp] [port=check_port]
  • interval: 向后端發(fā)送的健康檢查包的間隔,單位為毫秒
  • rise: 如果連續(xù)成功次數(shù)達到rise_count,服務器就被認為是up
  • fall: 如果連續(xù)失敗次數(shù)達到fall_count,服務器就被認為是down
  • timeout: 后端健康請求的超時時間,單位為毫秒
  • type: 健康檢查包的類型,支持類型如下:

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

    ssl_hello:發(fā)送一個初始的SSL hello包并接受服務器的SSL hello包

    http:發(fā)送HTTP請求,通過后端的回復包的狀態(tài)來判斷后端是否存活

    mysql: 向mysql服務器連接,通過接收服務器的greeting包來判斷后端是否存活

    ajp:向后端發(fā)送AJP協(xié)議的Cping包,通過接收Cpong包來判斷后端是否存活

  • default_down: 設定初始時服務器的狀態(tài),如果是true,就說明默認是down的,如果是false,就是up的。默認值是true,也就是一開始服務器認為是不可用,要等健康檢查包達到一定成功次數(shù)以后才會被認為是健康的
  • port: 指定后端服務器的檢查端口。你可以指定不同于真實服務的后端服務器的端口,比如后端提供的是443端口的應用,你可以去檢查80端口的狀態(tài)來判斷后端健康狀況。默認是0,表示跟后端server提供真實服務的端口一樣

2.5 check_http_send功能

用法:check_http_send "GET / HTTP/1.0\r\n\r\n"
默認值: "GET / HTTP/1.0\r\n\r\n"
位置:upstream塊
說明:http://ip:port/做健康檢測

2.6 監(jiān)控

You can specify the default display format. The formats can be `html`,
    `csv` or `json`. The default type is `html`. It also supports to specify
    the format by the request argument. Suppose your `check_status` location
    is '/status', the argument of `format` can change the display page's
    format. You can do like this:

        /status?format=html
        /status?format=csv
        /status?format=json

    At present, you can fetch the list of servers with the same status by
    the argument of `status`. For example:

        /status?format=html&status=down
        /status?format=csv&status=up

到此這篇關于nginx通過nginx_upstream_check_module實現(xiàn)后端健康檢查的文章就介紹到這了,更多相關nginx 后端健康檢查內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家! 

相關文章

  • Ubuntu?22.04.1?LTS?編譯安裝?nginx-1.22.1的配置過程

    Ubuntu?22.04.1?LTS?編譯安裝?nginx-1.22.1的配置過程

    Ubuntu安裝Nginx有兩種方式,一種是通過命令的方式,這種方式安裝的Nginx版本低,之前漏掃掃出來Nginx版本低,需要升級所以現(xiàn)在用編譯的方式安裝版本高點的,本文介紹Ubuntu22.04.1?LTS編譯安裝nginx1.22.1的配置過程,本文給大家介紹的非常詳細,需要的朋友參考下吧
    2024-01-01
  • Nginx 啟用 OCSP Stapling的配置

    Nginx 啟用 OCSP Stapling的配置

    本篇文章主要介紹了Nginx 啟用 OCSP Stapling的配置,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-03-03
  • Nginx的location的常見規(guī)則優(yōu)先級問題

    Nginx的location的常見規(guī)則優(yōu)先級問題

    Nginx是反向代理和負載均衡的首選工具,nginx的location配置有許多細節(jié)內容在網上不容易找到資料,或者解釋不清。本文對Nginx location規(guī)則優(yōu)先級介紹,需要的朋友參考下吧
    2021-08-08
  • Centos基于Nginx搭建RTMP服務器的實現(xiàn)

    Centos基于Nginx搭建RTMP服務器的實現(xiàn)

    本文主要介紹了Centos基于Nginx搭建RTMP服務器的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2025-07-07
  • Nginx配置超時時間的排查步驟

    Nginx配置超時時間的排查步驟

    在 Nginx 中設置了 keepalive_timeout、client_header_timeout 和 client_body_timeout 后仍然不起作用,所以本文給大家介紹了Nginx配置超時時間的排查步驟,并有相關的代碼示例供大家參考,需要的朋友可以參考下
    2024-11-11
  • nginx中配置sse的方法示例

    nginx中配置sse的方法示例

    本文主要介紹了nginx中配置sse的方法示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2024-08-08
  • iis+nginx實現(xiàn)負載均衡的詳細步驟

    iis+nginx實現(xiàn)負載均衡的詳細步驟

    這篇文章主要為大家詳細介紹了iis+nginx實現(xiàn)負載均衡的詳細步驟 ,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-07-07
  • Nginx訪問FTP服務器文件的時效性/安全校驗的方法

    Nginx訪問FTP服務器文件的時效性/安全校驗的方法

    nginx的實現(xiàn)方式在校驗失敗的時候頁面返回error image,跳轉的是420 error_page,成功的時候會訪問FTP文件服務器的路徑,反正圖片到頁面展示,這篇文章主要介紹了Nginx訪問FTP服務器文件的時效性/安全校驗,需要的朋友可以參考下
    2023-12-12
  • Nginx應用之Location路由反向代理及重寫策略示例

    Nginx應用之Location路由反向代理及重寫策略示例

    本篇文章主要介紹了Nginx應用之Location路由反向代理及重寫策略示例,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-02-02
  • Nginx 合并請求連接且加速網站訪問實例詳解

    Nginx 合并請求連接且加速網站訪問實例詳解

    這篇文章主要介紹了Nginx 合并請求連接且加速網站訪問實例詳解,瀏覽器的并發(fā)請求數(shù)目限制是針對同一域名的,同一時間針對同一域名下的請求有一定數(shù)量限制,超過限制數(shù)目的請求會被阻塞,需要的朋友可以參考下
    2019-07-07

最新評論

察哈| 昆明市| 巴塘县| 芒康县| 区。| 博湖县| 拉萨市| 贺州市| 赣州市| 黎城县| 山丹县| 连平县| 垣曲县| 龙山县| 皮山县| 昆山市| 双桥区| 浦城县| 喀什市| 济南市| 河西区| 弋阳县| 从化市| 弥渡县| 黄山市| 广汉市| 白河县| 如东县| 南召县| 高台县| 曲麻莱县| 镇安县| 布尔津县| 徐汇区| 兰溪市| 阳谷县| 宜春市| 寻甸| 南通市| 五河县| 海安县|