- 利用第三方Nginx插件监控代理后端节点的服务器
淘宝技术团队开发了一个Tengine(Nginx的分支)模块nginx_upstream_check_moodule,
用于提供主动式后端服务器健康检查。通过它可以检测后端rea1Server的健康状态,如果后端realservcr不可用,则所有的请求就不会转发到该节点上。
Tengine原生支持这个模块,而Nginx则需要通过打补丁的方式将该模块添加到Nginx中。补丁下载地址:https://github.com/yaoweibin/nginx_upstream_check_module。下面介绍一下如何使用这个模块
- 安装nginx_upstream_check_module模块
提示:系统已经安装了nginx-1.6.2软件的情况
[root@lb1 ~]# cd /server/tools/
[root@lb1 tools]# wget https://codeload.github.com/yaoweibin/nginx_upstream_check_module/zip/master
[root@lb1 tools]# unzip master
[root@lb1 nginx-1.6.3]# patch -p1 <../nginx_upstream_check_module-master/check_1.5.12+.patch
[root@lb1 nginx-1.6.3]# ./configure –prefix=/application/nginx-1.6.3 –user=nginx –group=nginx –with-http_ssl_module –with-http_stub_status_module –add-module=../nginx_upstream_check_module-master/
[root@lb1 nginx-1.6.3]# make
如果是新的nginx,则继续执行make install一步,如果给已经安装了nginx的系统打监控补丁就不用执行了,make install的作用就是重新生成Nginx二进制启动命令而己。
[root@lb1 nginx-1.6.3]# mv /application/nginx/sbin/nginx /application/nginx/sbin/nginx.ori
[root@lb1 nginx-1.6.3]# cp ./objs/nginx /application/nginx/sbin/
[root@lb1 nginx-1.6.3]# /application/nginx/sbin/nginx -t
- 配置nginx健康检查
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
upstream www_server_pools {
server 192.168.80.103:80 weight=1;
server 192.168.80.104:80 weight=1;
check interval=3000 rise=2 fall=5 timeout=1000 type=http;
}
server{
listen 192.168.80.101:80;
server_name www.etiantian.org;
location /status {
check_status;
access_log off;
}
location / {
proxy_pass http://www_server_pools;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $remote_addr;
}
}
}
重启nginx
[root@lb1 conf]# /application/nginx/sbin/nginx -s stop
[root@lb1 conf]# /application/nginx/sbin/nginx
#注意此处必须重启Nginx,不能重新加载。
check interval=3000 rise=2 fall=5 timeout=1000 type=http;
上面配置的意思是每隔3秒检测一次.请求2次正常则标记realserver状态为up.如果检测5次都失败.则标记realserver的状态为down,超时时间为1秒.检查的协议是http:
详细可见:http://tengine.taobao.org/document_cn/http_upstream_check_cn.html