nginx 实现后端节点健康检查

nginx 有自带模块针对后端节点的健康检查,那就是nginx_upstream_check_module

如图:

安装和使用

1.下载

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

2.解压安装包

unzip nginx_upstream_check_module-master.zip

3.解压至源码

cd ./nginx-1.6.2
patch -p1 < ../nginx_upstream_check_module-master/check_1.5.12+.patch

成功后提示
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

4.重新编译安装nginx,使用add-module 将这个第三方模块安装进去

./configure --prefix=/usr/nginx-1.6.2/ --add-module=../nginx_upstream_check_module-master/
make && make install

安装完成,开始配置使用

 check部分就是check模块的语法

check interval=milliseconds [fall=count] [rise=count]
[timeout=milliseconds] [default_down=true|false]
[type=tcp|http|ssl_hello|mysql|ajp|fastcgi]

interval:必要参数,检查请求的间隔时间。

fall:当检查失败次数超过了fall,这个服务节点就变成down状态。

rise:当检查成功的次数超过了rise,这个服务节点又会变成up状态。

timeout:请求超时时间,超过等待时间后,这次检查就算失败。

default_down:后端服务器的初始状态。默认情况下,检查功能在Nginx启动的时候将会把所有后端节点的状态置为down,检查成功后,在置为up。

type:这是检查通信的协议类型,默认为http

check_http_send http_packet

http_packet的默认格式为:"GET / HTTP/1.0

"

check_http_send设置,这个设置描述了检查模块在每次检查时,向后端节点发送什么样的信息

check_http_expect_alive [ http_2xx | http_3xx | http_4xx | http_5xx ]

配置完成后

nginx -t 检查配置文件是否可用

检查完成后reload

nginx -s reload



原文地址:https://www.cnblogs.com/zhengxq21/p/12036012.html