nginx实战之健康检查

很多人都知道nginx可以做负载均衡和反向代理,但是nginx的健康检查也是必不可少的一个环节,实现Nginx健康检查可以实现以下几个场景:

  • 当负载的节点宕机的时候nginx会将其移出负载池

  • 当宕机的节点恢复的时候nginx会将其加入负载池

  • 在负载机器没有全部宕机的时候,保证服务是可用的,不会出现404等情况


本文介绍的是淘宝技术团队开发的nginx模快nginx_upstream_check_module来检测后方realserver的健康状态,如果后端服务器不可用,则所有的请求不转发到这台服务器。本文偏向实战为主,以前躺坑已亲测可用。本文偏向实战,原理性可百度或后续篇章会讲。另外实现方案不止于本文介绍,请须知。


相关软件或源码下载在/usr/local/src/,并解压。

wget  https://www.openssl.org/source/openssl-1.0.1g.tar.gz -O openssl-1.0.1g.tar.gz
wget  ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.38.tar.gz
wget http://nginx.org/download/nginx-1.8.0.tar.gz
wget https://bitbucket.org/nginx-goodies/nginx-sticky-module-ng/get/1.2.6.tar.gz
wget https://codeload.github.com/yaoweibin/nginx_upstream_check_module/zip/master

解压 unzip master.zip


开始nginx安装
cd nginx- 1.8.0
patch -p1 < /usr/local/src/nginx_upstream_check_module-master/ check_1.9.2+.patch
./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-openssl=/usr/local/src/openssl-1.0.1g --with-pcre=/usr/local/src/pcre-8.38 --add-module=/usr/local/src/nginx_upstream_check_module-master/ --with-http_stub_status_module --with-http_realip_module --add-module=/usr/local/src/nginx-goodies-nginx-sticky-module-ng-c78b7dd79d0d/
make
make install

以上步骤确保编译无报错。(我在编译过程中花了很长时间来效验版本[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 ,通过手动宕机或恢复后端节点来验证即可。

我是一个Java class

11个简单的Java性能调优技巧

Java虚拟机性能监控与调优实战

?

你可能感兴趣的:(nginx实战之健康检查)