前言
在通过nginx搭建负载均衡服务器时,我们无法实时监测各个负载节点的运行情况,当某个节点崩溃后这个时候再有请求到来的话只能等待超时时间后转发到其他节点,这样就会造成响应延迟性能降低的问题。而nginx自带的两个节点健康检查模块功能有限,并不能达到我们的要求。
nginx_upstream_check_module:这个模块是由淘宝技术团队姚伟斌大神开发的。大神GitHub地址
一、下载相应安装包
1.下载nginx(官网:http://nginx.org/en/download.html )
//下载
wget http://nginx.org/download/nginx-1.16.1.tar.gz
//解压
tar -zxvf nginx-1.16.1.tar.gz
2.下载nginx_upstream_check_module
//下载
wget https://codeload.github.com/yaoweibin/nginx_upstream_check_module/zip/master
//解压
unzip ./master
或者直接点击网址下载nginx_upstream_check_module-master.zip安装包后解压缩为文件。
本人的解压目录是:/usr/local/src/
二、给nginx打补丁,安装
1.找到nginx-1.16.1对应支持的nginx_upstream_check_module补丁包为check_1.14.0+.patch,路径为:
解压目录/nginx_upstream_check_module-master/check_1.14.0+.patch 。
2.进入nginx-1.16.1源码目录,执行命令
patch -p1 < ../nginx_upstream_check_module-master/check_1.14.0+.patch
3.编译、安装nginx,新建目录/usr/local/webserver/nginx,用于存放编译安装后的文件,执行命令:
./configure --prefix=/usr/local/webserver/nginx --add-module=/usr/local/src/nginx_upstream_check_module-master
4.执行make和make install
三、配置nginx.conf
upstream tomcat_server_ssl_api{
server ip:port;
server ip:port;
//检测周期为5秒,唤醒检测为2次,失败检测为3次,超时时间为1秒,检测类型为http
check interval=5000 rise=2 fall=3 timeout=1000 type=http;
//检测url为ip:port/common/check,类型为HEAD,长连接
check_http_send "HEAD /common/check HTTP/1.0\r\nConnection: keep-alive\r\n\r\n";
//响应码为2XX或3XX判断为存活
check_http_expect_alive http_2xx http_3xx;
}
server{
listen 443 ssl;
server_name api.ydjia.com;
location / {
proxy_pass http://tomcat_server_ssl_api;
}
//配置健康访问
location /checkStatus {
check_status;
access_log off;
#allow IP;
#deny all;
}
}
四、开启nginx
1.在/usr/local/webserver/nginx/sbin目录下执行命令,开启nginx
./nginx
2.可以通过配置的健康访问查看各节点的存活情况
完毕!!!
附件 Ubuntu 编译nginx 依赖库zlib,pcre,openssl ,检查和安装命令如下:
首先使用dpkg命令查看自己需要的软件是否安装。
例如查看zlib是否安装:
dpkg -l | grep zlib
1.解决依赖包openssl安装,命令:
sudo apt-get install openssl libssl-dev
2.解决依赖包pcre安装,命令:
sudo apt-get install libpcre3 libpcre3-dev
3.解决依赖包zlib安装,命令:
sudo apt-get install zlib1g-dev