Nginx第三方模块nginx_upstream_check_module实现http检测

news/2024/7/7 21:45:46 标签: nginx

1. 故障现象

架构如下:
在这里插入图片描述
当时servera的容器oom了,开始不停重启,造成80端口是活着的,但没法正常提供http服务
原先的配置如下:

upstream aaa {
	server 192.168.31.17;
	server 192.168.31.27;
}
server {
	listen 192.168.31.67:80;
        server_name aa.qiuqin.com 192.168.31.67;
        location / {
            proxy_pass http://aaa;
        }
}

2. 安装和配置Nginx第三方模块

nginx_upstream_check_module_20">2.1 下载nginx_upstream_check_module

https://github.com/yaoweibin/nginx_upstream_check_module
在这里插入图片描述

nginx_23">2.2 下载nginx

https://nginx.org/en/download.html
在这里插入图片描述

2.3 安装依赖

yum install -y gcc‐c++ pcre pcre‐devel zlib zlib‐devel openssl openssl‐devel patch pcre-devel zlib unzip

nginxnginx_upstream_check_module_31">2.4 上传nginxnginx_upstream_check_module

mkdir -p /apps/install/
cd /apps/install/
unzip nginx_upstream_check_module-master.zip
tar xf nginx-1.20.2.tar.gz

nginx_39">2.5 为nginx更新模块补丁

cd /apps/install/nginx-1.20.2
patch -p1 < /apps/install/nginx_upstream_check_module-master/check_1.20.1+.patch

nginx_45">2.6 编辑安装nginx

由于是测试环境新装就直接configure了

./configure --with-http_stub_status_module \
            --add-module=/apps/install/nginx_upstream_check_module-master
            make -j 4 && make install
            ln -sf /usr/local/nginx/sbin/nginx /usr/bin/nginx

如果是原来的升级先执行

nginx -V

把原来的配置复制出来,再追加–with-http_stub_status_module --add-module=/apps/install/nginx_upstream_check_module-master

3. 配置文件修改

我单独配置了个conf,也可以直接写在nginx.conf里
/usr/local/nginx/conf/conf.d/aa.conf

参数含义
interval检测间隔时间,单位为毫秒
rsie请求2次正常的话,标记此realserver的状态为up
fall表示请求5次都失败的情况下,标记此realserver的状态为down
timeout为超时时间,单位为毫秒。
upstream aaa {
	server 192.168.31.17;
	server 192.168.31.27;
        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;
}
server {
	listen 192.168.31.67:80;
        server_name aa.qiuqin.com 192.168.31.67;
        location / {
            proxy_pass http://aaa;
        }
}

3.1 测试效果

两台web都正常启动
在这里插入图片描述
关闭27的nginx,并启动80的监听
在这里插入图片描述
此时27上80端口可以被telnet到,但nginx已经不会再转发请求了
在这里插入图片描述


http://www.niftyadmin.cn/n/1021572.html

相关文章

python—正则表达式

我们平时上网的时候&#xff0c;经常需要在一些网站上注册帐号&#xff0c;而注册帐号的时候对帐号信息会有一些要求。 比如&#xff1a; 上面的图片中&#xff0c;输入的邮件地址、密码、手机号 符合要求才可以注册成功。 我们是我们自己写的网站&#xff0c;那么我们需要判断…

课下作业1-2汉诺塔问题

1.程序设计思想 利用递归的方法&#xff0c;借助中间的底座将盘子从第一座移到第三座。输出挪动盘子的步骤 2.程序流程图 3.程序源代码 //信1605-1 寇肖萌 20163446import java.util.Scanner;public class hanoita { public static int m; public static void main(String args…

Nginx 安装第三方模块 不停机 平滑升级

1. 目的 在原nginx加第三方模块nginx_upstream_check_module实现http检测. 由于系统是24小时运行,所以需要做平滑升级 2. 模拟环境搭建 cd /opt tar xf nginx-1.20.2.tar.gz ./configure --prefix/apps/nginx-1.20 --usernginx --groupnginx --with-http_stub_status_module…

C#逆变和协变的理解-----为什么逆变可以把Object类型的类型参数转换成String类型的类型参数...

根据可变性的规则&#xff0c;只有接口和委托可以标记可变性。且只有类型参数为引用类型时才可以利用可变性。 不变性&#xff1a;泛型类型的参数不能改变&#xff0c;这表示一个创建一个MyInterface<String>类型的对象时&#xff0c;赋值给它的只能是MyInterface<Str…

Nginx 安装第三方模块 不停机 平滑升级 方法2

1. 安装步骤略 可以参考https://blog.csdn.net/qq_29974229/article/details/126114380 1和2 至此nginx已经启动 备份nginx文件 cp /apps/nginx-1.20/sbin/nginx /apps/nginx-1.20/sbin/nginx.bak此时Nginx master 进程号为43619 2. 加载第三方补丁并安装 patch -p1 < …

选择排序(Selection Sort)

选择排序(Selection Sort)的基本思想是&#xff1a;每一趟从待排序的记录中选出关键字最小的记录&#xff0c;顺序放在已排好序的子文件的最后&#xff0c;直到全部记录排序完毕。   常用的选择排序方法有直接选择排序和堆排序。 直接选择排序(Straight Selection Sort) …

【云原生 | Kubernetes 系列】K8s版本升级---v1.21.0至v1.21.12

1. 目的 本文纯粹为了升级而升级,不在解决v1.21.0的任何bug,只为了做一个K8s升级的文档 K8s的升级一般在1个大版本之内升级,超过2个请谨慎处理. 例如:1.21.x 升级到1.22.x,升级1.23.x理论上步骤是一样的 同时事先做好ETCD的备份 1.1 ETCD备份 V2版本: /opt/etcd_backup 此目…

Oracle 数据库 10g:为 DBA 提供的最佳前 20 位的特性 - 17.自动共享内存管理

第 17 周 自动共享内存管理 是不是很难准确地分配不同的池所需的内存数&#xff1f;自动共享内存管理特性使得自动将内存分配到最需要的地方去成为可能。 无论您是一个刚入门的 DBA 还是一个经验丰富的 DBA&#xff0c;您肯定至少看到过一次类似以下的错误&#xff1a; ORA-…