Loading [MathJax]/jax/input/TeX/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Nginx负载均衡健康检查功能

Nginx负载均衡健康检查功能

作者头像
剧终
发布于 2020-09-18 02:23:13
发布于 2020-09-18 02:23:13
2.7K00
代码可运行
举报
文章被收录于专栏:Linux学习日志Linux学习日志
运行总次数:0
代码可运行

upstream_check_module模块可以用来检测后端服务的健康状态,如果后端服务器不可用,则所有的请求不转发到这台服务器 upstream_check_module模块是第三方模块,并不是Nginx提供的 模块地址 https://github.com/yaoweibin/nginx_upstream_check_module

环境

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
172.16.0.132  #代理服务器
172.16.0.1  #后端WEB服务器
172.16.0.186  #后端WEB服务器

安装依赖

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
yum install -y pcre pcre-devel openssl openssl-devel patch libxml2 libxml2-dev libxslt-devel gd gd-devel perl-devel perl-ExtUtils-Embed gperftools

克隆项目到本地

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
git clone https://github.com/yaoweibin/nginx_upstream_check_module.git

下载Nginx源码包

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
wget http://nginx.org/download/nginx-1.7.5.tar.gz
tar zxf nginx-1.7.5.tar.gz
cd nginx-1.7.5

Nginx 打补丁

选择相对应Nginx版本的补丁

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
patch -p1 < ../nginx_upstream_check_module/check_1.7.5+.patch 

编译安装

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
./configure --prefix=/usr/local/nginx --add-module=/nginx_upstream_check_module --with-http_ssl_module --with-http_gzip_static_module --with-http_stub_status_module
make
make install  #如果没安装过Nginx就执行这条命令

#如果安装过Nginx就执行下面的命令
cp /usr/local/nginx/sbin/nginx{,.bak}  #先备份
cp objs/nginx /usr/local/nginx/sbin/nginx

编辑配置文件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
vim /usr/local/nginx/conf.d/www.conf 
upstream web{
  server 172.16.0.1;
  server 172.16.0.186;
  check interval=3000 rise=2 fall=3 timeout=1000 type=http default_down=true port=80;
}
server {
  listen 80;
  server_name 172.16.0.132;

location / {
  proxy_pass http://web;
}
location /status {
  check_status;
}
}

参数解释

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
interval=3000  #检测间隔时间,单位为毫秒
rise=2  #请求2次都成功的话,目标主机是正常状态
fall=3  #请求3次都失败的话,目标主机是宕机状态
timeout=1000 #设置请求超时时间,单位为毫秒
default_down=true  #设定初始时服务器的状态,如果是true,就说明默认是down的,如果是false,就是up的,要等rise检查次数达到一定成功次数以后才会被认为是正常的
port=80  #指定后端服务器的检查端口
tyep=http   #设置请求的协议
#支持的协议
tcp:简单的tcp连接,如果连接成功,就说明后端正常。
ssl_hello:发送一个初始的SSL hello包并接受服务器的SSL hello包。
http:发送HTTP请求,通过后端的回复包的状态来判断后端是否存活。
mysql: 向mysql服务器连接,通过接收服务器的greeting包来判断后端是否存活。
ajp:向后端发送AJP协议的Cping包,通过接收Cpong包来判断后端是否存活。

重载配置文件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/usr/local/nginx/sbin/nginx -s reload

浏览器访问

如果其中一台服务器关闭Nginx服务

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Nginx健康检查机制
公司业务线上对后端节点的健康检查是通过nginx_upstream_check_module模块做的,这里我将分别介绍这三种实现方式以及之间的差异性。
黄规速
2024/05/24
1.3K0
Nginx健康检查机制
Nginx负载均衡后端健康检查
本次使用第三方模块nginx_upstream_check_module的,要使用这个第三方模块首先您需要进行下载,然后通过patch命令将补丁打入您原有的Nginx源码中,并且重新进行编译安装。
星哥玩云
2022/07/26
7310
Nginx负载均衡后端健康检查
Nginx负载均衡中后端节点服务器健康检查的操作梳理
正常情况下,nginx做反向代理,如果后端节点服务器宕掉的话,nginx默认是不能把这台realserver踢出upstream负载集群的,所以还会有请求转发到后端的这台realserver上面,这样势必造成网站访问故障。虽然nginx可以在localtion中启用proxy_next_upstream来解决返回给用户的错误页面,如下: 例如公司的网站访问的时候全部变成404页面,最后发现是后端的一台服务器不可用,直接访问那台后台的服务器的时候,返回的是404页面,因为upstream 里面设置了ip_ha
洗尽了浮华
2018/01/23
4.9K0
Nginx安装负载均衡配置 fair check扩展
本文主要是针对Nginx安装、负载均衡配置,以及fair智能选举、check后端节点检查扩展功能如何扩展,进行讲解说明。
拓荒者
2019/03/11
1.9K0
Nginx之Tengine主动健康检查解读
Tengine本质上就是nginx,用法跟nginx一模一样,由淘宝团队进行二次开发。它在Nginx的基础上,针对大访问量网站的需求,添加了很多高级功能和特性。Tengine的性能和稳定性已经在大型的网站如淘宝网,天猫商城等得到了很好的检验。它的最终目标是打造一个高效、稳定、安全、易用的Web平台。
一个风轻云淡
2023/10/01
7400
Centos7.6搭建nginx 1.16.1并使用upstream_check_module模块
nginx自带的针对后端节点健康检查的功能比较简单,无法主动识别后端节点状态,后端即使有不健康节点, 负载均衡器依然会把该请求转发给该不健康节点,只能等待超时时间后转发到其他节点,这样就会造成响应延迟性能降低的问题。
loong576
2020/02/14
2.5K3
nginx负载均衡配置,宕机自动切换
严格来说,nginx自带是没有针对负载均衡后端节点的健康检查的,但是可以通过默认自带的ngx_http_proxy_module模块和ngx_http_upstream_module模块中的相关指令来完成当后端节点出现故障时,自动切换到健康节点来提供访问。下面列出这两个模块中相关的指令:
用户1685462
2021/07/28
2K0
Nginx-基础总结(下)
版本平滑升级,和添加模块操作类似 准备模块 这里以 nginx-push-stream-module 为例,模块我放在 /data/module 下,你也可以放在其他位置
云计算小黑
2022/12/28
3930
Nginx健康检查模块
在本小节我们介绍一个用于Nginx对后端UpStream集群节点健康状态检查的第三方模块:nginx_upstream_check_module(https://github.com/yaoweibin/nginx_upstream_check_module)。这个模块有资料介绍是TaoBao团队开发的,但是我在GitHua上试图求证时并没有找到直接证据。
星哥玩云
2022/07/19
1.6K0
Nginx 健康检查详解
Nginx 的健康检查这块笔者在网上看了很多文章,基本都是零零散散的,讲各种实现方式,没有一篇能完整的讲当下的 Nginx 实现健康检查的几种方式,应该选哪一种来使用,于是笔者想总结一篇。
星哥玩云
2022/07/19
6.1K0
Nginx系列:后端服务应用健康检测
严格来说,nginx到目前为止没有针对负载均衡后端节点的健康检测的模块,但是可以通过proxy_next_upstream来间接实现,但proxy_next_upstream还是会把请求转发给故障服务器的,然后再转发给别的服务器,这样就需要多一次转发。nginx_upstream_check_module为淘宝技术团队开发的nginx模块,用来检测后方server的健康状态,如果后端服务器不可用,则请求不再转发到这台服务器。
BUG弄潮儿
2020/08/31
3.1K0
Nginx系列:后端服务应用健康检测
Nginx负载均衡简单配置
严格的说,Nginx仅仅是作为Nginx Proxy反向代理使用的。普通的负载均衡软件,例如LVS,其实现的功能只是对请求数据包的转发(也可能会改写数据包)、传递,其中DR模式明显的特征是从负载均衡下面的节点服务器来看,接收到的请求还是来自访问负载均衡的客户端的真实用户。而反向代理不一样,反向代理接收访问用户的请求后,会代理用户重新发起请求代理下的节点服务器,最后把数据返回给客户端用,在节点服务器看来,访问的节点服务器的客户端就是反向代理服务器了,而非真是的网络用户。
双面人
2019/10/24
8830
Nginx的Upstream监控及告警
之前写过一篇文章,介绍Nginx如何监控各server流量,主要是通过新增第三方status模块查看所有server及upstream状态进行查看,之后总有人问有没有办法监控upstream并进行告警,所以今天介绍一下,完整的upstream监控及告警方法
李俊鹏
2021/02/23
3.2K1
Nginx的Upstream监控及告警
Nginx 主动监测模块 upstream check 误用导致的502--no live upsteams
nginx出现502 Bad GateWay的原因大部分情况下应该都不是Nginx的问题,而是后端Server的问题,比如程序挂了,比如响应太慢了。不过有时问题也出在Nginx上,就是我们遇到的这种情况,nginx reload之后一段时间内的访问都是502,error log中大量的no live upstream日志。
the5fire
2019/03/01
3.1K0
Tengine ngx_http_upstream_check_module 健康功能检测使用
该模块在Tengine-1.4.0版本以前没有默认开启,它可以在配置编译选项的时候开启:./configure --with-http_upstream_check_module
星哥玩云
2022/06/30
9360
Tengine ngx_http_upstream_check_module 健康功能检测使用
nginx利用第三方模块检查后端服务器
大家都知道前端使用nginx做反向代理,如果后端服务器宕掉的话,nginx是不能把这台real server剔出upstream的,所以还会有请求转发到后端的这台real server上面去,虽然nginx可以在localtion中启用proxy_next_upstream来解决返回给用户的错误页面,但这个还是会把请求转发给这台服务器的,然后再转发给别的服务器,这样就浪费了一次转发,这次借助与淘宝技术团队开发的nginx模快nginx_upstream_check_module来检测后方realserver的健康状态,如果后端服务器不可用,则所以的请求不转发到这台服务器。
BUG弄潮儿
2022/06/30
4880
nginx利用第三方模块检查后端服务器
如何使用Nginx对Artifactory进行http应用
在我们日常使用高可用集群时,都会使用到负载均衡工具对多个节点的负载进行转发。这里就不得不提到我们常用的一个负载均衡工具Nginx,Nginx官方提供的免费版本功能相对简单,大部分情况下我们都是用其进行负载均衡,对于应用的状态主要是依赖于其他的监控工具。如果对于小型的团队来说,部署专门的监控工具还需要资源,使用Nginx对应用进行探活监控可以节约这部分成本。
JFrog杰蛙科技
2021/06/18
1.6K0
如何使用Nginx对Artifactory进行http应用
第五章·Nginx七层负载均衡
-多年互联网运维工作经验,曾负责过大规模集群架构自动化运维管理工作。 -擅长Web集群架构与自动化运维,曾负责国内某大型金融公司运维工作。 -devops项目经理兼DBA。 -开发过一套自动化运维平台(功能如下): 1)整合了各个公有云API,自主创建云主机。 2)ELK自动化收集日志功能。 3)Saltstack自动化运维统一配置管理工具。 4)Git、Jenkins自动化代码上线及自动化测试平台。 5)堡垒机,连接Linux、Windows平台及日志审计。 6)SQL执行及审批流程。 7)慢查询日志分析web界面。
DriverZeng
2022/09/26
1.1K0
第五章·Nginx七层负载均衡
nginx搭建
第一步:从http://nginx.org/download/上下载相应的版本(或者wget http://nginx.org/download/nginx-1.5.9.tar.gz直接在Linux上用命令下载)
BUG弄潮儿
2022/06/30
3230
Nginx、Consul、Upsync实现动态负载均衡
Nginx实现动态负载均衡,首先需要一个服务发现集群,通过集群中注册的信息动态更新nginx的配置,实现动态负载均衡。因此首先准备一个Consul集群
公众号: 云原生生态圈
2021/03/16
1K0
Nginx、Consul、Upsync实现动态负载均衡
相关推荐
Nginx健康检查机制
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验