久久久久久久视色,久久电影免费精品,中文亚洲欧美乱码在线观看,在线免费播放AV片

<center id="vfaef"><input id="vfaef"><table id="vfaef"></table></input></center>

    <p id="vfaef"><kbd id="vfaef"></kbd></p>

    
    
    <pre id="vfaef"><u id="vfaef"></u></pre>

      <thead id="vfaef"><input id="vfaef"></input></thead>

    1. 站長(zhǎng)資訊網(wǎng)
      最全最豐富的資訊網(wǎng)站

      Nginx 健康檢查詳解

      Nginx 的健康檢查這塊筆者在網(wǎng)上看了很多文章,基本都是零零散散的,講各種實(shí)現(xiàn)方式,沒(méi)有一篇能完整的講當(dāng)下的 Nginx 實(shí)現(xiàn)健康檢查的幾種方式,應(yīng)該選哪一種來(lái)使用,于是筆者想總結(jié)一篇。

      一、目前 Nginx 支持兩種主流的健康檢查模式

      主動(dòng)檢查模式

      Nginx 服務(wù)端會(huì)按照設(shè)定的間隔時(shí)間主動(dòng)向后端的 upstream_server 發(fā)出檢查請(qǐng)求來(lái)驗(yàn)證后端的各個(gè) upstream_server 的狀態(tài)。 如果得到某個(gè)服務(wù)器失敗的返回超過(guò)一定次數(shù),比如 3 次就會(huì)標(biāo)記該服務(wù)器為異常,就不會(huì)將請(qǐng)求轉(zhuǎn)發(fā)至該服務(wù)器。

      一般情況下后端服務(wù)器需要為這種健康檢查專(zhuān)門(mén)提供一個(gè)低消耗的接口。

      被動(dòng)檢查模式

      Nginx 在代理請(qǐng)求過(guò)程中會(huì)自動(dòng)的監(jiān)測(cè)每個(gè)后端服務(wù)器對(duì)請(qǐng)求的響應(yīng)狀態(tài),如果某個(gè)后端服務(wù)器對(duì)請(qǐng)求的響應(yīng)狀態(tài)在短時(shí)間內(nèi)累計(jì)一定失敗次數(shù)時(shí),Nginx 將會(huì)標(biāo)記該服務(wù)器異常。就不會(huì)轉(zhuǎn)發(fā)流量給該服務(wù)器。 不過(guò)每間隔一段時(shí)間 Nginx 還是會(huì)轉(zhuǎn)發(fā)少量的一些請(qǐng)求給該后端服務(wù)器來(lái)探測(cè)它的返回狀態(tài)。 以便識(shí)別該服務(wù)器是否恢復(fù)。

      后端服務(wù)器不需要專(zhuān)門(mén)提供健康檢查接口,不過(guò)這種方式會(huì)造成一些用戶請(qǐng)求的響應(yīng)失敗,因?yàn)?Nginx 需要用一些少量的請(qǐng)求去試探后端的服務(wù)是否恢復(fù)正常。
      •注:如果是采用 Nginx 被動(dòng)檢查模式,官方原生的 Nginx 就支持,不需要依賴(lài)第三方模塊或技術(shù),所以下面的探討都是針對(duì) Nginx 實(shí)現(xiàn)主動(dòng)健康檢查的方法

      二、目前使用 Nginx 實(shí)現(xiàn)健康檢查的幾種方式

      1.使用開(kāi)源模塊 nginx_upstream_check_module

      源碼地址:https://github.com/yaoweibin/nginx_upstream_check_module

      這是我目前找到的讓原生 Nginx 通過(guò)添加開(kāi)源模塊,免費(fèi)實(shí)現(xiàn)主動(dòng)健康檢查的唯一方法。 下面我會(huì)詳細(xì)介紹這種方式的安裝和配置過(guò)程

      2.使用商業(yè)版 Nginx Plus

      https://www.nginx.com/products/nginx/

      這種方法需要收費(fèi),可獲得技術(shù)支持

      3.使用淘寶開(kāi)源的 Tengine 代替 Nginx

      http://tengine.taobao.org

      這種方式也免費(fèi),可行。

      三、這里我們演示第一種方法的實(shí)現(xiàn),使用開(kāi)源模塊 nginx_upstream_check_module

      首先去下載該模塊的源碼包,放到要編譯 Nginx 的服務(wù)器上;

      操作系統(tǒng)環(huán)境:CentOS6.8 ,這里默認(rèn)已經(jīng)安裝好了編譯所需的開(kāi)發(fā)環(huán)境

      1.安裝編譯 Nginx 所需的軟件包

      yum install pcre pcre-devel openssl openssl-devel -y

      2.選擇 Nginx 版本,編譯安裝(編譯前記得給 Nginx 打?qū)?yīng)補(bǔ)?。?/p>

      •這里要認(rèn)真看下,很關(guān)鍵:

      這里 Nginx 選擇:nginx-1.14.0.tar.gz ,nginx_upstream_check_module 源碼就下載最新的主線代碼包:nginx_upstream_check_module-master.zip 但是編譯前補(bǔ)丁要選對(duì)應(yīng) Nginx 版本的。 比如這里 nginx-1.14.0 補(bǔ)丁要選擇 check_1.14.0+.patch ; 補(bǔ)丁文件就在 nginx_upstream_check_module 源碼包里面。

      #!/bin/bash

      tar xf nginx-1.14.0.tar.gz
      unzip nginx_upstream_check_module-master.zip

      cd nginx-1.14.0

      # 打補(bǔ)丁,注意編譯前一定要有打補(bǔ)丁這步,不然添加的模塊編譯不生效
      patch -p1 < /root/nginx_upstream_check_module-master/check_1.14.0+.patch

      ./configure –user=www –group=www –prefix=/alidata/server/nginx –with-http_stub_status_module –with-http_ssl_module –with-http_gzip_static_module –add-module=/root/nginx_upstream_check_module-master

      make && make install

      3.配置和應(yīng)用

      # nginx.conf

      user  www www;
      worker_processes  4;

      worker_rlimit_nofile 65535;

      events
      {
        use epoll;
        worker_connections 65535;
      }

      http {

      # 指定一個(gè) upstream 負(fù)載均衡組,名稱(chēng)為 evalue
          upstream evalue {
          # 定義組內(nèi)的節(jié)點(diǎn)服務(wù),如果不加 weight 參數(shù),默認(rèn)就是 Round Robin ,加上了 weight 參數(shù)就是加權(quán)輪詢(xún)
                  server 192.168.90.100:9999 weight=100;
                  server 192.168.90.101:9999 weight=100;
          # interval=3000 檢查間隔 3 秒 , rise=3 連續(xù)成功3次認(rèn)為服務(wù)健康 , fall=5 連續(xù)失敗5次認(rèn)為服務(wù)不健康 , timeout=3000 健康檢查的超時(shí)時(shí)間為 3 秒 , type=http  檢查類(lèi)型 http
                  check interval=3000 rise=3 fall=5 timeout=3000 type=http;
          # check_http_send 設(shè)定檢查的行為:請(qǐng)求類(lèi)型 url 請(qǐng)求協(xié)議 -> HEAD /api/v1/chivox/health HTTP/1.0       
                  check_http_send “HEAD /api/v1/chivox/health HTTP/1.0rnrn”;
          # 設(shè)定認(rèn)為返回正常的響應(yīng)狀態(tài)     
                  check_http_expect_alive http_2xx http_3xx;
                  #check_http_send “GET /test3.html HTTP/2.0rnrn”;
          }

      }

      server {
              listen    80;

              location / {
                      proxy_pass http://evalue;
                      keepalive_timeout 0;
              }

      # 配置健康檢查的狀態(tài)監(jiān)控頁(yè)
      # check_status [html|csv|json]
      # 也可以在請(qǐng)求監(jiān)控頁(yè)的時(shí)候帶上參數(shù)以輸出不同的格式,/status?format=html | /status?format=csv | /status?format=json

              location /status {
                      check_status html;
                      access_log off;
              }

              location ~ /.svn/ {
              deny all;
              }
              access_log /alidata/log/nginx/access/evalue.log json;
      }

      贊(0)
      分享到: 更多 (0)
      網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)