利用tengine的nginx_upstream_check_module来检测后端服务状态

nginx_upstream_check_module 是专门提供负载均衡器内节点的健康检查的外部模块,由淘宝的姚伟斌大神开发,通过它可以用来检测后端 realserver 的健康状态。如果后端 realserver 不可用,则后面的请求就不会转发到该节点上,并持续检查几点的状态。在淘宝自己的 tengine 上是自带了该模块。项目地址:https://github.com/yaoweibin/nginx_upstream_check_module

参考文档:https://www.cnblogs.com/paul8339/p/8124739.html

(1)源码编译安装tengine2.1.2版本

yum install pcre pcre-devel openssl openssl-devel gcc make zlib-devel wget -y
mkdir /tools
cd /tools/
wget http://tengine.taobao.org/download/tengine-2.1.2.tar.gz
useradd nginx -s /sbin/nologin
tar xf tengine-2.1.2.tar.gz
cd tengine-2.1.2
./configure --user=nginx --group=nginx --prefix=/usr/local/nginx2.1.2 --with-http_stub_status_module --with-http_ssl_module --with-http_upstream_check_module --with-http_gzip_static_module
make && make install
ln -sv /usr/local/nginx2.1.2/ /usr/local/nginx
echo "export PATH=/usr/local/nginx/sbin:$PATH" >>/etc/profile
source /etc/profile
echo "/usr/local/nginx/sbin/nginx"  >>/etc/rc.local
nginx
cd /usr/local/nginx/conf
egrep -v "#|^$" nginx.conf.default >nginx.conf

(2)nginx配置

#vim /usr/local/nginx/conf.d/www.test.com.conf
upstream node {
    ip_hash;
    server 192.9.191.31:8001;
    server 192.9.191.31:8002;
    server 192.9.191.31:8003;
    check interval=1000 rise=1 fall=1 timeout=1000 type=http;
    check_http_send "GET /index.html HTTP/1.0\r\n\r\n";
    check_http_expect_alive http_2xx http_3xx;
        }
server {
    listen       80;
     server_name  www.test.com;
        location / {
                proxy_pass http://node;
            }
        location /status {                                  //开启状态页面
            check_status;
            access_log   off;
            allow 192.9.191.0/24;
            deny all;
            }
       }

参数详解

check interval=1000 rise=1 fall=1 timeout=1000 type=http;
        interval检测间隔时间,单位毫秒
        rise请求1次正常的话,标记此realserver的状态为up
        fall表示请求1次都失败的请求,标记此realserver的状态为down
        timeout超时时间,单位毫秒
        type是http类型
check_http_send "GET /index.html HTTP/1.0\r\n\r\n";
        可以使用GET方法,POST,HEAD等方法获取资源  /index.html表示请求的资源,
check_http_expect_alive http_2xx http_3xx;
        状态码是2xx和3xx就认为后端服务是正常的

(3)验证

http://www.test.com/status

断开1个服务

原文地址:https://www.cnblogs.com/lovelinux199075/p/9062256.html

时间: 2024-10-29 15:56:40

利用tengine的nginx_upstream_check_module来检测后端服务状态的相关文章

go 运维,检测 web 服务状态

延续前面的代码,在运维的时候经常需要检测 web 服务的状态,可以在 web 中专门设置一个测试页面(可以查询下数据库,返回一个指定的值) package main //使用的包 import ( "flag" "fmt" "io/ioutil" "log" "net" "net/http" "regexp" ) //定义脚本的版本 const VERSION = &

tengine检查后端服务状态

ngx_http_upstream_check_module (http://tengine.taobao.org/document_cn/http_upstream_check_cn.html) 该模块可以为Tengine提供主动式后端服务器健康检查的功能. 该模块在Tengine-1.4.0版本以前没有默认开启,它可以在配置编译选项的时候开启:./configure --with-http_upstream_check_module Examples http { upstream clus

利用grunt-contrib-connect和grunt-connect-proxy搭建前后端分离的开发环境

前后端分离这个词一点都不新鲜,完全的前后端分离在岗位协作方面,前端不写任何后台,后台不写任何页面,双方通过接口传递数据完成软件的各个功能实现.此种情况下,前后端的项目都独立开发和独立部署,在开发期间有2个问题不可避免:第一是前端调用后台接口时的跨域问题(因为前后端分开部署):第二是前端脱离后台服务后无法独立运行.本文总结最近一个项目的工作经验,介绍利用grunt-contrib-connect和grunt-connect-proxy搭建前后端分离的开发环境的实践过程,希望能对你有所帮助. 注:

iOS开发者必备:四款后端服务工具

本文转载至 http://mobile.51cto.com/iphone-411917.htm 对于开发者来说,连接后端数据或许是一件特别痛苦的事情.但后端服务却能够帮助开发人员以更快的速度构建移动应用程序而不牺牲后端功能. AD:2014WOT全球软件技术峰会北京站 课程视频发布 后端服务加速了移动应用的开发,改进了可扩展性并减少了开发者对服务器端编码的需求.对于开发者来说,连接后端数据到前端或许是一件特别痛苦的事情.但后端服务却能够帮助开发者以更快的速度构建移动应用,不仅如此,它还能减少着移

后端服务性能压测实践

转自:https://mp.weixin.qq.com/s/XW9geHZ9odHdI7srDiKBIg 目录 背景 环境检测 压力机及压力工具检测 Linux openfiles limit 设置 排查周边依赖 空接口压测检测 聚合报告中 throughput 计算 压测及性能排查方法 关注各纬度 log Linux 常规命令 性能排查两种方式(从上往下.从下往上) 总结 背景 最近大半年内有过两次负责性能压测的一些工作.一件事情做了一次可能还无法总结出一些东西,两次过后还是能发现一些共性问题

(转)后端服务性能压测实践

作者:王清培(Plen wang) 传送门:https://www.cnblogs.com/wangiqngpei557/p/7953453.html ---------------------------------------------------------------------分割线------------------------------------------------------ 入职新公司,没人理我,负责的需求开发一直很忙,要么环境有问题,要么Bug卡住我找开发,回了一句

后端服务性能优化实战篇

本文简单介绍下后端服务开发中常用的一些性能优化策略. 1.代码 优化代码实现是第一位的,特别是一些不合理的复杂实现.如果结合需求能从代码实现的角度,使用更高效的算法或方案实现,进而解决问题,那是最简单有效的. 2.数据库 数据库的优化,总体上有3个方面: 1)  SQL调优:除了掌握SQL基本的优化手段,使用慢日志定位到具体问题SQL,使用explain.profile等工具来逐步调优. 2)  连接池调优:选择高效适用的连接池,结合当前使用连接池的原理.具体的连接池监控数据和当前的业务量作一个

Jersey后端服务接收ajax前端的图片上传

近期的项目里需要在前端上传图片后端接收处理.前端JSP页面使用Ajax上传图片后端使用Jersey框架提供restful接口接收处理图片. 一.前端的处理 jsp页面中图片上传没有使用form表单而是直接使用file类型的input控件 <input type="file" name="file" class="inpTxtA" value="" id="appLogo"/> <input

利用RGB-D数据进行人体检测 带dataset

利用RGB-D数据进行人体检测 LucianoSpinello, Kai O. Arras 摘要 人体检测是机器人和智能系统中的重要问题.之前的研究工作使用摄像机和2D或3D测距器.本文中我们提出一种新的使用RGB-D的人体检测方法.我们从HOG( Histogram of OrientedGradients)描述子获得灵感,设计了一个在稠密深度数据中检测人体的方法,叫做深度方向直方图HOD(Histogram of Oriented Depths).HOD对局部深度变化的方向进行编码,依靠在预