nginx利用第三方模块nginx_upstream_check_module来检查后端服务器的健康情况

大家都知道,前段nginx做反代,如果后端服务器宕掉的话,nginx是不能把这台realserver提出upstream的,所以还会有请求转发到后端的这台realserver上面去,虽然nginx可以在localtion中启用proxy_next_upstream来解决返回给用户的错误页面,方法在:http://www.linuxyan.com/web-server/67.html,大家可以参考一下,但这个还是会把请求转发给这台服务器的,然后再转发给别的服务器,这样就浪费了一次转发,这次借助与淘宝技术团队开发的nginx模快nginx_upstream_check_module来检测后方realserver的健康状态,如果后端服务器不可用,则所以的请求不转发到这台服务器。

首先去这里下载nginx的模块https://github.com/yaoweibin/nginx_upstream_check_module
下面是nginx打上模块补丁的安装

$ wget ‘http://nginx.org/download/nginx-1.0.14.tar.gz’
$ tar -xzvf nginx-1.0.14.tar.gz
$ cd nginx-1.0.14/
$ patch -p1 < /path/to/nginx_http_upstream_check_module/check.patch
注:因nginx版本更新,1.2以上版本的nginx,补丁为check_1.2.1+.patch
$ ./configure –add-module=/path/to/nginx_http_upstream_check_module
$ make
$ make install

之后在nginx.conf配置文件里面的upstream加入健康检查,如下:

upstream linuxyan {
  server 192.168.0.21:80;
  server 192.168.0.22:80;
  check interval=3000 rise=2 fall=5 timeout=1000;
}

这里下面加的这句话我解释下,interval检测间隔时间,单位为毫秒,rsie请求2次正常的话,标记此realserver的状态为up,fall表示请求5次都失败的情况下,标记此realserver的状态为down,timeout为超时时间,单位为毫秒。
在server段里面可以加入查看realserver状态的页面

location /nstatus {
  check_status;
  access_log off;
  #allow SOME.IP.ADD.RESS;
  #deny all;
}

这个时候打开nstatus这个页面就可以看到当前realserver的状态了,
如下图:
1.2台realserver都正常的情况下

2.一台realserver故障的情况下

更多有关于此模块的信息请查阅:https://github.com/yaoweibin/nginx_upstream_check_module

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
nginx_upstream_check_module.tar.gz 是一个 Nginx模块,用于对 Nginx 配置中定义的各个后端服务器进行健康检查,并根据检查结果决定是否将请求转发到该服务器。 这个模块可以通过编译安装的方式添加到 Nginx 中使用。首先,我们需要下载源码包 nginx_upstream_check_module.tar.gz 到本地,并解压缩。然后,在编译 Nginx 时,通过添加 --add-module=/path/to/nginx_upstream_check_module 选项来指定该模块的路径。 使用该模块,我们可以在 Nginx 的配置文件中定义一组后端服务器,并设置检查的间隔时间、超时时间、失败的最大次数等参数。当有请求到达时,该模块会自动进行健康检查,判断每个服务器的状态,并根据设定的规则选择合适的服务器进行请求转发。如果某个服务器在规定的时间内无法正常响应请求,该服务器会被标记为不可用,不再接收新的请求。 通过使用 nginx_upstream_check_module.tar.gz,我们可以提高服务的可用性和可靠性。当某个后端服务器出现故障时,该模块可以自动将请求转发到其他正常的服务器上,确保用户的访问不受影响。此外,该模块还可以提供监控和报警功能,方便我们及时发现并处理故障情况。 总的来说,nginx_upstream_check_module.tar.gz 是一个功能强大的 Nginx 模块,可以对后端服务器进行健康检查并自动进行请求转发,提高服务的可用性和可靠性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值