简介

Tengine是由淘宝网发起的Web服务器项目。它在Nginx的基础上,针对大访问量网站的需求,添加了很多高级功能和特性。Tengine的性能和稳定性已经在大型的网站如淘宝网,天猫商城等得到了很好的检验。它的最终目标是打造一个高效、稳定、安全、易用的Web平台。

从2011年12月开始,Tengine成为一个开源项目,Tengine团队在积极地开发和维护着它。Tengine团队的核心成员来自于淘宝、搜狗等互联网企业。Tengine是社区合作的成果,我们欢迎大家参与其中,贡献自己的力量。

 入门安装


# 安装依赖
$ yum -y install gcc-c++ pcre-devel openssl openssl-devel# 下载
$ wget https://tengine.taobao.org/download/tengine-2.3.3.tar.gz# 解压
$ tar -zxvf tengine-2.3.3.tar.gz
$ cd tengine-2.3.3# 编译安装 默认安装在/usr/local/nginx目录。你可以用'--prefix'来指定你想要的安装目录。
$ ./configure --add-module=modules/ngx_http_upstream_check_module
$ make
$ sudo make install# 进入 Tengine 安装目录
$ cd /usr/local/nginx# 启动 Tengine 服务
$ ./sbin/nginx

 访问测试

  •         其他机器访问请注意防火墙端口是否开放

    • 访问 http://127.0.0.1:80 即下图欢迎页面
    • 非本机访问请检查防火墙端口是否开放

                            

健康检查

ngx_http_upstream_check_module该模块可以为Tengine提供主动式后端服务器健康检查的功能。在Tengine-1.4.0版本以前没有默认开启,它可以在配置编译选项的时候开启:

./configure --with-http_upstream_check_module

# 修改nginx配置文件如下 (服务地址按实际应用更改): http {upstream cluster1 {# simple round-robinserver 192.168.0.1:80;server 192.168.0.2:80;check interval=3000 rise=2 fall=5 timeout=1000 type=http;check_http_send "HEAD / HTTP/1.0\r\n\r\n";check_http_expect_alive http_2xx http_3xx;}upstream cluster2 {# simple round-robinserver 192.168.0.3:80;server 192.168.0.4:80;check interval=3000 rise=2 fall=5 timeout=1000 type=http;check_keepalive_requests 100;check_http_send "HEAD / HTTP/1.1\r\nConnection: keep-alive\r\n\r\n";check_http_expect_alive http_2xx http_3xx;}server {listen 80;location /1 {proxy_pass http://cluster1;}location /2 {proxy_pass http://cluster2;}location /status {check_status;access_log   off;# allow SOME.IP.ADD.RESS;# deny all;}}
}

指令解释

Syntax: check interval=milliseconds [fall=count] [rise=count] [timeout=milliseconds] [default_down=true|false] [type=tcp|http|ssl_hello|mysql|ajp] [port=check_port]
Default: 如果没有配置参数,默认值是:interval=30000 fall=5 rise=2 timeout=1000 default_down=true type=tcp
Context: upstream

该指令可以打开后端服务器的健康检查功能,指令后面的参数意义是:

  • interval:向后端发送的健康检查包的间隔。
  • fall(fall_count): 如果连续失败次数达到fall_count,服务器就被认为是down。
  • rise(rise_count): 如果连续成功次数达到rise_count,服务器就被认为是up。
  • timeout: 后端健康请求的超时时间。
  • default_down: 设定初始时服务器的状态,如果是true,就说明默认是down的,如果是false,就是up的。默认值是true,也就是一开始服务器认为是不可用,要等健康检查包达到一定成功次数以后才会被认为是健康的。
  • type:健康检查包的类型,现在支持以下多种类型
    • tcp:简单的tcp连接,如果连接成功,就说明后端正常。
    • ssl_hello:发送一个初始的SSL hello包并接受服务器的SSL hello包。
    • http:发送HTTP请求,通过后端的回复包的状态来判断后端是否存活。
    • mysql: 向mysql服务器连接,通过接收服务器的greeting包来判断后端是否存活。
    • ajp:向后端发送AJP协议的Cping包,通过接收Cpong包来判断后端是否存活。
  • port: 指定后端服务器的检查端口。你可以指定不同于真实服务的后端服务器的端口,比如后端提供的是443端口的应用,你可以去检查80端口的状态来判断后端健康状况。默认是0,表示跟后端server提供真实服务的端口一样。该选项出现于Tengine-1.4.0。

检验测试

  • 访问 http://127.0.0.1/status 会如下页面

  • 访问 http://127.0.0.1/status/?format=json
{"servers": {"total": 4,"up": 0,"down": 4,"generation": 3,"server": [{"index": 0,"upstream": "cluster1","name": "192.168.0.1:80","status": "down","rise": 0,"fall": 286,"type": "http","port": 0},{"index": 1,"upstream": "cluster1","name": "192.168.0.2:80","status": "down","rise": 0,"fall": 286,"type": "http","port": 0},{"index": 2,"upstream": "cluster2","name": "192.168.0.3:80","status": "down","rise": 0,"fall": 286,"type": "http","port": 0},{"index": 3,"upstream": "cluster2","name": "192.168.0.4:80","status": "down","rise": 0,"fall": 286,"type": "http","port": 0}]}
}
  1. server number是后端服务器的数量
  2. generation是Nginx reload的次数
  3. Index是服务器的索引
  4. Upstream是在配置中upstream的名称
  5. Name是服务器IP
  6. Status是服务器的状态
  7. Rise是服务器连续检查成功的次数
  8. Fall是连续检查失败的次数
  9. Check type是检查的方式
  10. Check port是后端专门为健康检查设置的端口
  • 服务正常返回2xx或3xx的状态码后会显示正常UP上线

加密认证

# 安装i密码
yum -y install httpd# 生成认证用户名密码: htpasswd -nb 用户名 密码
htpasswd -nb admin 123456# 进入配置文件夹
cd conf# 新建密钥文件
touch htpasswd # 打开密钥保存已经生成的用户名密码
vim htpasswd# 保存文件
:wq# 更新nginx配置文件
vim ./nginx.conf# 新增配置如下:
location /status {check_status;auth_basic "登录";auth_basic_user_file /usr/local/nginx/conf/htpasswd;access_log   off;# allow SOME.IP.ADD.RESS;# deny all;
}# 重启nginx
/usr/local/nginx/sbin/nginx -s reload

重启后重新访问如下图需输入用户名密码进行认证:

Tengine 服务健康检查相关推荐

  1. consul 服务健康检查

    文章目录 简介 check方法 Script check(Script+ Interval) 基于HTTP请求 基于tcp请求 基于grpc请求 Docker 简介 服务注册 - 服务进程在注册中心注 ...

  2. nacos的cp和ap原则,服务健康检查

    CP和AP CAP原则:cap理论是针对分布式数据库而言的,它是指在一个分布式系统中,一致性(Consistency,C).可用性(Availability,A).分区容错性(Partition To ...

  3. SpringCloud Nacos 心跳机制和服务健康检查源码解析

    1 客户端心跳机制 1.1 客户端注册源码流程 https://blog.csdn.net/qq_34125999/article/details/117566523 1.2 NacosNamingS ...

  4. mysql健康检查脚本_MySQL服务健康检查脚本

    #!/bin/sh #date:2015-12-07 #filename:check_mysql.sh #作者:linuxzkq #Email:1729294227@qq.com #version:v ...

  5. mysql 健康检查_MySQL服务健康检查脚本

    #!/bin/sh #date:2015-12-07 #filename:check_mysql.sh #作者:linuxzkq #Email:1729294227@qq.com #version:v ...

  6. Nacos系列【23】Nacos2.x服务发现模块之注册中心健康检查机制

    有道无术,术尚可求,有术无道,止于术. 资料整理来自Nacos架构与原理电子书,下载地址:https://developer.aliyun.com/ebook/36?spm=a2c6h.2034510 ...

  7. slb健康检查方式_SLB健康检查也是“正常”-问答-阿里云开发者社区-阿里云

    负载均衡通过健康检查来判断后端服务器(ECS实例)的业务可用性.健康检查机制提高了前端业务整体可用性,避免了后端ECS异常对总体服务的影响. 开启健康检查功能后,当后端某台ECS健康检查出现异常时,负 ...

  8. 负载均衡 > 用户指南 > 健康检查 > 健康检查概述

    健康检查概述 更新时间:2019-08-16 15:46:34 编辑我的收藏 本页目录 健康检查过程 HTTP/HTTPS监听健康检查机制 TCP监听健康检查机制 UDP监听健康检查 健康检查时间窗 ...

  9. Docker学习总结(28)——Docker 容器健康检查机制

    摘要: 在分布式系统中,经常需要利用健康检查机制来检查服务的可用性,防止其他服务调用时出现异常.自 1.12 版本之后,Docker 引入了原生的健康检查实现.本文将介绍Docker容器健康检查机制, ...

最新文章

  1. 安全测试之xss攻击和mysql注入
  2. java中ArrayList
  3. highcharts图标插件详解一
  4. 【软考-软件设计师】解释程序实现高级语言的三种方式
  5. 经典卷积神经网络--AlexNet的详解
  6. 一步步学习EF Core(3.EF Core2.0路线图)
  7. java中连接mysql数据库_java中怎么连接mysql数据库
  8. 校园网免认证登录基于DNS伪装包
  9. 快书编标让标书制作更高效、更规范、更轻松
  10. html 标签置底,学习笔记:让元素永久置底的几种方案(css only)
  11. android虚拟按键
  12. 基于胜任力模型为集团企业构建动态信息安全培训课程体系
  13. itutorgroup:在线教育与传统线下教育的七大区别你知多少?
  14. 程序员上下班途中都在想什么
  15. Guava 之 Multiset
  16. AndroidStudio中忽略大小写设置
  17. 增加智能建筑照明网络的安全性
  18. MRD文档的写作----产品经理深入浅出课程
  19. webapi输出炜json_asp.net web api只返回json数据格式
  20. 计算机信息素养的三个层次是,信息素养的三个层面包括( A ).doc

热门文章

  1. 百科不全书之我的常见报错和解决
  2. 2019款ipad支持电容笔吗?Ipad2019电容笔推荐
  3. 正版免费图片编辑处理软件下载_图片处理软件
  4. Android 虚拟运营商apn与spn配置
  5. 软件开发、硬件开发、IPD产品开发 及 工程开发各阶段划分
  6. 文档查看器GroupDocs.Viewer V17.11发布 | 附下载
  7. 不经一番寒彻骨,怎得梅花扑鼻香,android开发艺术探索电子
  8. DEL命令居然无法删除文件夹!
  9. 2022-2028年中国金融业OCR识别行业市场调查研究及前瞻分析报告
  10. 黑鲨1 救黑砖 9008救砖