很多人都知道nginx可以做负载均衡和反向代理,但是nginx的健康检查也是必不可少的一个环节,实现Nginx健康检查可以实现以下几个场景:
当负载的节点宕机的时候nginx会将其移出负载池
当宕机的节点恢复的时候nginx会将其加入负载池
在负载机器没有全部宕机的时候,保证服务是可用的,不会出现404等情况
本文介绍的是淘宝技术团队开发的nginx模快nginx_upstream_check_module来检测后方realserver的健康状态,如果后端服务器不可用,则所有的请求不转发到这台服务器。本文偏向实战为主,以前躺坑已亲测可用。本文偏向实战,原理性可百度或后续篇章会讲。另外实现方案不止于本文介绍,请须知。
相关软件或源码下载在/usr/local/src/,并解压。
解压 unzip master.zip
开始nginx安装
以上步骤确保编译无报错。(我在编译过程中花了很长时间来效验版本[1.9.2+],网上没找到相应资料,是个教训)
注意点:
1. -with-pcre=/usr/local/src/pcre-8.38 pcre的源码所在,不是安装目录
2. --with-openssl =/usr/local/src/openssl-1.0.1g openssl的源码所在,不是安装目录
3. --add-module=/usr/local/src/nginx_upstream_check_module-master/
源码所在,不是安装目录
这些源码通过文档头部的地址下载到/usr/local/src目录下,要确保源码路径存在。不然configure以及后续编译不通过。
编译通过后就可以使用带nginx_upstream_check_module模块的nginx进行健康检查了。
如何验证
编译通过后配置nginx ,弄个负载均衡然后启动nginx ,通过手动宕机或恢复后端节点来验证即可。
领取专属 10元无门槛券
私享最新 技术干货