admin 發表於 2019-9-10 10:06:16

Nginx使用upstream_check_module模块实现后端节点健康检查功能

nginx自带的针对后端节点康健查抄的功效比力简略,经由过程默许自带的ngx_http_proxy_module 模块和ngx_http_upstream_module模块中的相干指令来完成当后端节点呈现妨碍时,主动切换到康健节点来供给拜候。

举例

upstream name {

server 192.168.57.110:8080 max_fails=1 fail_timeout=10s;

server 192.168.57.101:8080 max_fails=1 fail_timeout=10s;

}

参数阐明:

max_fails=number # 设定Nginx与办事器通讯的测验考试失败的次数。在fail_timeout参数界说的时候段内,若是失败的次数到达此值,Nginx就认为办事器不成用。鄙人一个fail_timeout时候段,办事器不会再被测验考试。 失败的测验考试次数默许是1。设为0就会遏制统计测验考试次数,认为办事器是一向可用的。 你可以经由过程指令proxy_next_upstream、fastcgi_next_upstream和 memcached_next_upstream来设置装备摆设甚么是失败的测验考试。 默许设置装备摆设时,http_404状况不被认为是失败的测验考试。

fail_timeout=time # 设定办事器被认为不成用的时候段和统计失败测验考试次数的时候段。在这段时候中,办事器失败次数到达指定的测验考试次数,办事器就被认为不成用。默许环境下,该超时时候是10秒。

这类环境Nginx没法自动辨认后端节点状况,后端即便有不康健节点, 负载平衡器仍然会先把该哀求转发给该不康健节点,然后再转发给此外节点,如许就会挥霍一次转发,并且自带模块没法做到预警。So 此时利用第三方模块 nginx_upstream_check_module模块

nginx_upstream_check_module模块由淘宝团队开辟 淘宝本身的 tengine 上是自带了该模块的,大师可以拜候淘宝tengine的官网来获得该版本的nginx,官方地点:。咱们利用的是原生Nginx,采纳添加模块的方法

摆设流程

一、下载nginx_upstream_check_module模块

#进入nginx安装目次

cd /usr/lcoal/nginx

#下载nginx_upstream_check_module模块

wget

#解压

unzip master

cd nginx-1.11.5 # 进入nginx的源码目次

# -p0,是“当前路径” -p1,是“上一级路径”

patch -p0 ../nginx_upstream_check_module-master/check_1.11.5+.patch

#nginx -V 可以检察原有设置装备摆设 输出 ./configure --prefix=/usr/local/nginx

#增长upstream_check模块

./configure --prefix=/usr/local/nginx --add-module=../nginx_upstream_check_module-master

make

/usr/local/nginx/sbin/ngin海島型木地板,x -t # 查抄下是不是有问题

注重 check版本和Nginx版本请求有限定 1.12以上版本的nginx,补钉为check_1.11.5+.patch 详细参考github

3.点窜设置装备摆设文件,让nginx_upstream_check_module模块见效

upstream name {

server 192.168.57.207:8090;

server 192.168.57.85:80;

check in台中借錢, terval=3000 rise=2 fall=5 timeout=1000 type=http;

}

参数诠释

启动或重载nginx

输入 /nstatus

从上图可以看出 如今有两个节点 咱们报酬把此中57.85节点API封闭,此时状况为down 节点正常时会规复为正常状况
頁: [1]
查看完整版本: Nginx使用upstream_check_module模块实现后端节点健康检查功能