前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Nginx负载均衡健康检查功能

Nginx负载均衡健康检查功能

作者头像
剧终
发布2020-09-18 10:23:13
2.5K0
发布2020-09-18 10:23:13
举报
文章被收录于专栏:Linux学习日志

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

环境

代码语言:javascript
复制
172.16.0.132  #代理服务器
172.16.0.1  #后端WEB服务器
172.16.0.186  #后端WEB服务器

安装依赖

代码语言:javascript
复制
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
复制
git clone https://github.com/yaoweibin/nginx_upstream_check_module.git

下载Nginx源码包

代码语言:javascript
复制
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
复制
patch -p1 < ../nginx_upstream_check_module/check_1.7.5+.patch 

编译安装

代码语言:javascript
复制
./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
复制
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
复制
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
复制
/usr/local/nginx/sbin/nginx -s reload

浏览器访问

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

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 环境
  • 安装依赖
  • 克隆项目到本地
  • 下载Nginx源码包
  • Nginx 打补丁
  • 编译安装
  • 编辑配置文件
    • 参数解释
    • 重载配置文件
    • 浏览器访问
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档