溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

CentOS7.2 nginx1.10.1 增加后端健康檢查upstream_check模塊

發(fā)布時間:2020-07-20 10:57:03 來源:網(wǎng)絡(luò) 閱讀:4914 作者:翹楚秦歌 欄目:建站服務(wù)器

nginx1.10.1增加后端web健康檢查upstream_check模塊


因為公司的業(yè)務(wù)需求,需要將已建好的架構(gòu)中反向代理和負(fù)載均衡做成集群,來應(yīng)對高幷發(fā)量。

但是做成集群的架構(gòu)后,後端的兩臺web機器,需要靠nginx的upstream_check來做健康檢查。

實驗環(huán)境:

  應(yīng)用              IP                 操作系統(tǒng)               涉及軟件

負(fù)載均衡層     172.16.22.2         CentOS 7.2             nginx-1.10.1

后端web01     172.16.22.3         CentOS 7.2            Tomcat-7.0.72

后端web02     172.16.22.4         CentOS 7.2            Tomcat-7.0.72


下列的設(shè)定只在負(fù)載均衡層進行,且至針對單臺進行操作,另外一臺負(fù)載均衡機器集群成員也按照下列步驟操作即可。

下面呈現(xiàn)的是我大致的安裝步驟:

1.已源碼安裝nginx1.10.1版本


2.首先下載了nginx_upstream_check_module模塊補丁

wget https://github.com/yaoweibin/nginx_upstream_check_module/archive/master.zip


3.把master.zip解壓

[root@z soft]#unzip  nginx_upstream_check_module.zip

進入到nginx_upstream_check_module內(nèi)

[root@z nginx_upstream_check_module]#pwd

/data0/soft/nginx_upstream_check_module

--主要為方便後續(xù)打好補丁做準(zhǔn)備


4.進入到nginx1.10.1的源碼包目錄里

[root@z ~]#cd /usr/local/nginx-1.10.1


5.因要對nginx打後臺健康檢查的補丁,需要把打補丁的命令安裝完畢

[root@z nginx-1.10.1]#rpm -qa | grep patch

patch-2.7.1-8.el7.x86_64


如果沒有安裝patch,就yum install -y patch


6.打upstream_check補丁進入nginx-1.10.1內(nèi)

[root@z nginx-1.10.1]#patch -p0 < /data0/soft/nginx_upstream_check_module/check_1.11.1+.patch


7.打完補丁就進行編譯

因為需要添加–add-module=/root/nginx_upstream_check_module-master 

如果其他編譯參數(shù)和之前保持一致,但又不記得之前的編譯參數(shù),

可使用 nginx -V 命令查看。

[root@z nginx-1.10.1]# /usr/local/nginx/sbin/nginx -V

nginx version: nginx/1.10.1

built by gcc 4.8.5 20150623 (Red Hat 4.8.5-4) (GCC) 

built with OpenSSL 1.0.1e-fips 11 Feb 2013

TLS SNI support enabled

configure arguments: 

--prefix=/usr/local/nginx 

--pid-path=/var/run/nginx/nginx.pid 

--lock-path=/var/lock/nginx.lock 

--user=nginx 

--group=nginx 

--with-http_ssl_module 

--with-http_flv_module 

--with-http_stub_status_module 

--with-http_gzip_static_module 

--http-client-body-temp-path=/var/tmp/nginx/client/ 

--http-proxy-temp-path=/var/tmp/nginx/proxy/ 

--http-fastcgi-temp-path=/var/tmp/nginx/fcgi/ 

--http-uwsgi-temp-path=/var/tmp/nginx/uwsgi 

--http-scgi-temp-path=/var/tmp/nginx/scgi 

--with-pcre


所以就進行編譯,只要在後面添加upstream_check_module-master

即如下:

[root@z nginx-1.10.1]#./configure \

--prefix=/usr/local/nginx  \

--pid-path=/var/run/nginx/nginx.pid  \

--lock-path=/var/lock/nginx.lock   \

--user=nginx  \

--group=nginx  \

--with-http_ssl_module  \

--with-http_flv_module  \

--with-http_stub_status_module  \

--with-http_gzip_static_module  \

--http-client-body-temp-path=/var/tmp/nginx/client/  \

--http-proxy-temp-path=/var/tmp/nginx/proxy/  \

--http-fastcgi-temp-path=/var/tmp/nginx/fcgi/  \

--http-uwsgi-temp-path=/var/tmp/nginx/uwsgi  \

--http-scgi-temp-path=/var/tmp/nginx/scgi  \

--with-pcre \

--add-module=/data0/soft/nginx_upstream_check_module-master/


[root@z nginx-1.10.1]#  make && make install

[root@z nginx-1.10.1]#  make clean

#注:因為我是在原來已安裝的版本上安插nginx_upstream_check_module模塊,所以nginx.conf是在原來的基礎(chǔ)上生成的,所以不需要另外備份。要是謹(jǐn)慎點還是把原來的配置檔案備份一下,再進行編譯安裝。


8.到了這,就是重點了,配置nginx檢測後端節(jié)點健康狀況

vim /etc/nginx.conf

添加upstream模塊


upstream information{

    server 172.16.22.3:80  max_fails=2;

    server 172.16.22.4:80  max_fails=2;

    check interval=3000 rise=2 fall=5 timeout=1000 type=http;

  }

--嵌套進http內(nèi)即可


#注,指令參數(shù)的意義

  - interval:向后端發(fā)送的健康檢查包的間隔ms。

    - fall(fall_count): 如果連續(xù)失敗次數(shù)達到fall_count,服務(wù)器就被認(rèn)為是down。

    - rise(rise_count): 如果連續(xù)成功次數(shù)達到rise_count,服務(wù)器就被認(rèn)為是up。

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

    - default_down: 設(shè)定初始時服務(wù)器的狀態(tài),如果是true,就說明默認(rèn)是down的,如果是false,就是up的。

默認(rèn)值是true,也就是一開始服務(wù)器認(rèn)為是不可用,要等健康檢查包達到一定成功次數(shù)以后才會被認(rèn)為是健康的。

    - type:健康檢查包的類型,現(xiàn)在支持以下多種類型

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

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

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

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

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

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

比如后端提供的是443端口的應(yīng)用,你可以去檢查80端口的狀態(tài)來判斷后端健康狀況。默認(rèn)是0,表示跟后端server提供真實服務(wù)的端口一樣。


9.通過訪問nginxstatus頁面,查看后端機器是否真的連接上了的準(zhǔn)備工作

vim /etc/nginx.conf

配置負(fù)載均衡層實時連接狀態(tài)展示頁面,在nginx.conf上添加上

location /nginxstatus{

   stub_status on;

   access_log /usr/local/nginx/logs/status.log;

   auth_basic "nginxstatus";

}


查看后端網(wǎng)頁的連接數(shù),查看upstream check status,即后端web健康狀況

#添加了nginx_upstream_check_module模塊之后,該項生效  

#主要為了測試nginx_upstream_check_module模塊是否好使

location /zstatus{

    check_status;

access_log off;

#allow IP;

#deny all;

}


10.配置完畢,需要重啟nginx服務(wù)

先檢查配置信息是否無誤

[root@z nginx-1.10.1]#/usr/local/nginx/sbin/nginx -t


平滑重啟nginx服務(wù)

[root@z nginx-1.10.1]#/usr/local/nginx/sbin/nignx -s reload


可以在網(wǎng)頁上瀏覽訪問http://172.16.22.2/nginxstatus ,查看nginx的連接狀態(tài)

CentOS7.2 nginx1.10.1 增加后端健康檢查upstream_check模塊

訪問http://172.16.22.2/informationstatus,查看后端web健康狀況

CentOS7.2 nginx1.10.1 增加后端健康檢查upstream_check模塊

以上說明后端健康檢查模塊安裝成功!

上述內(nèi)容純靠記憶寫下,可能存在缺漏,如有錯誤與遺失,歡迎大家指出,謝謝!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI