Nginx负载均衡中后端节点服务器健康检查的操作梳理
2017-05-27 14:52
477 查看
Nginx负载均衡中后端节点服务器健康检查的操作梳理
正常情况下,nginx做反向代理,如果后端节点服务器宕掉的话,nginx默认是不能把这台realserver踢出upstream负载集群的,所以还会有请求转发到后端的这台realserver上面,这样势必造成网站访问故障。虽然nginx可以在localtion中启用proxy_next_upstream来解决返回给用户的错误页面,如下:目前主要有三种方式可以实现对nginx负载均衡的后端节点服务器进行健康检查:
1)ngx_http_proxy_module模块和ngx_http_upstream_module模块(这是nginx自带模块)
参考地址:http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_next_upstream
2)nginx_upstream_check_module模块(淘宝技术团队开发)
参考地址:https://github.com/yaoweibin/nginx_upstream_check_module
3)ngx_http_healthcheck_module模块
------------------------------------------------------------------------------------------------------------------------
一、利用nginx自带模块ngx_http_proxy_module和ngx_http_upstream_module对后端节点做健康检查
严格来说,nginx自带是没有针对负载均衡后端节点的健康检查的,但是可以通过默认自带的ngx_http_proxy_module模块和ngx_http_upstream_module模块中的相关指令来完成当后端节点出现故障时,自动切换到健康节点来提供访问。下面列出这两个模块中相关的指令:
除了上面介绍的nginx自带模块,还有一个更专业的模块,来专门提供负载均衡器内节点的健康检查的。这个就是淘宝技术团队开发的nginx模块nginx_upstream_check_module,通过它可以用来检测后端realserver的健康状态。如果后端realserver不可用,则所以的请求就不会转发到该节点上。个人比较推荐使用这种方式来检查nginx后端节点的健康状态。
在淘宝自己的tengine上是自带了该模块的,大家可以访问淘宝tengine的官网http://tengine.taobao.org来获取该版本的nginx,
如果没有使用淘宝的tengine的话,可以通过补丁的方式来添加该模块到我们自己的nginx中。部署流程如下:
温馨提示:在生产环境的实施应用中需要注意下面两点
三、利用ngx_http_healthcheck_module模块对后端节点做健康检查
除了上面两个模块,nginx官方在早期的时候还提供了一个ngx_http_healthcheck_module模块用来进行nginx后端节点的健康检查。nginx_upstream_check_module模块就是参照该模块的设计理念进行开发的,因此在使用和效果上都大同小异。
但是需要注意的是,ngx_http_healthcheck_module模块仅仅支持nginx的1.0.0版本,1.1.0版本以后都不支持了!因此,对于目前常见的生产环境上基本都不会去用这个模块了
相关文章推荐
- Nginx负载均衡中后端节点服务器健康检查的操作梳理
- Nginx负载均衡+后端节点健康检查安装部署文档
- nginx后端节点服务器健康检查二
- Nginx实战之--后端节点健康检查
- nginx 主动式后端服务器健康检查
- Nginx--后端节点健康检查
- Nginx对后端节点健康检查
- Nginx实战系列之功能篇----后端节点健康检查
- Nginx实战系列之功能篇----后端节点健康检查(转)
- 【转】nginx 主动式后端服务器健康检查
- Nginx后端节点健康检查配置使用详情
- Nginx实战系列之功能篇----后端节点健康检查
- nginx利用第三方模块nginx_upstream_check_module来检查后端服务器的健康情况
- Zabbix监控Tengine 后端服务器健康检查
- Nginx实战系列之功能篇----后端节点健康检查
- 健康检查功能不会更新后端服务器
- tengine后端服务器健康检查HEAD请求400错误
- Nginx实战系列之功能篇----后端节点健康检查
- nginx利用第三方模块nginx_upstream_check_module来检查后端服务器的健康情况
- nginx对后端节点的健康检查