网站首页 > 技术教程 正文
Nginx是一个很强大的中间件,在做负载均衡的时候,通常是通过IP:Port的形式来实现,有时候是服务器及进程没有问题,但程序假死,如果还继续分压,就会出错,这个时候就需要真正探测程序是否能提供服务为阈值来判断比较准确。
一、项目上用的Nginx做的负载均衡,但发现有时候服务已经死掉或者不提供服务,进程还在,比如内存溢出(OOM)的时候,就是这个现象,但Nginx是通过IP:port来负载的,这个时候,如果继续往已经挂掉的服务分配负载,就会出现服务不能访问的错误,所以,我们得根据服务的状态来判断,不能根据ip:port的形式,要实现这个功能,需要用到Nginx第三方模块nginx_upstream_check_module,解压后如下
- 解压后进行编译安装:
280 2021-12-01 12:22:47 cd nginx-1.14.0/
283 2021-12-01 12:23:21 patch -p1 < /cmp/soft/nginx_upstream/nginx_upstream_check_module-master/check_1.14.0+.patch
284 2021-12-01 12:23:43 /cmp/nginx/sbin/nginx -V
286 2021-12-01 12:24:32 ./configure --prefix=/cmp/nginx --user=cmspvbs --group=cmspvbs --with-http_realip_module --with-http_stub_status_module
287 2021-12-01 12:24:52 ./configure --add-module=/path/to/nginx_http_upstream_check_module
288 2021-12-01 12:26:06 ./configure --add-module=/cmp/soft/nginx_upstream/nginx_upstream_check_module-master
289 2021-12-01 12:26:26 make
290 2021-12-01 12:27:18 make install
二、Nginx配置
http {
upstream cmc_booters {
# This is cmp simple round-robin
server 180.2.32.170:18091;
server 180.2.32.171:18091;
# This is check options
check interval=5000 rise=1 fall=3 timeout=3000 type=http;
check_http_send "HEAD /status HTTP/1.1\r\nHOST:127.0.0.1\r\nConnection:keep-alive\r\n\r\n";
}
server {
location /proxy_status {
check_status;
access_log on;
allow all;
}
}
}
- - check_status:[html|csv|json],默认html
- -check_http_send:指定检测的http访问地址,默认/
- - type:[tcp|http|ssl_hello|mysql|ajp],默认tcp
- - interval:向后端发送的健康检查包的间隔,单位(毫秒)
- - fall(fall_count): 如果连续失败次数达到fall_count,服务器就被认为是down。
- - rise(rise_count): 如果连续成功次数达到rise_count,服务器就被认为是up。
- - timeout: 后端健康请求的超时时间。
- - host:本机IP地址。
我在使用的时候是忘记host设置,一直监测不到服务的状态,网上的教程很多也没有些,需留一下
三、重启Nginx,使配置生效
./sbin/nginx -s reload
Nginx生效后可以通过配置中的/proxy_status查看状态
- 这个功能非常有用,在实际场景中也经常用到,服务进程存在,但由于各种原因已经不提供服务,通过IP:port这种4层协议是监测不到的,根据http7层协议更准确
如果条友喜欢,还请给个关注
猜你喜欢
- 2024-10-09 面试题 HTTP及web服务相关(nginx apache)
- 2024-10-09 Nginx实现认证登录(nginx登录验证)
- 2024-10-09 Nginx 是如何处理 HTTP 头部的?(女飞行员余旭遗体头部图)
- 2024-09-08 nginx 安装教程(详解)(nginx安装与配置详解)
- 2024-09-08 学习Nginx,跟着阿里大牛走,一套精心整理的Nginx(PDF文档)
- 2024-09-08 nginx实现内外网访问限制(nginx 内网)
- 2024-09-08 nginx的多域http、https同时访问配置及http重定向https
- 2024-09-08 nginx httpstatus 408 研究(404 not found nginx是什么意思)
- 2024-09-08 Nginx完全指南--内容解析(三)(nginx 详解)
- 2024-09-08 Nginx http 强转https(http://cas.tjgl.teacheredu.cn)
你 发表评论:
欢迎- 最近发表
-
- Win11学院:如何在Windows 11上使用WSL安装Ubuntu
- linux移植(Linux移植freemodbus)
- 独家解读:Win10预览版9879为何无法识别硬盘
- 基于Linux系统的本地Yum源搭建与配置(ISO方式、RPM方式)
- Docker镜像瘦身(docker 减小镜像大小)
- 在linux上安装ollama(linux安装locale)
- 渗透测试系统Kali推出Docker镜像(kali linux渗透测试技术详解pdf)
- Linux环境中部署Harbor私有镜像仓库
- linux之间传文件命令之Rsync傻瓜式教程
- 解决ollama在linux中安装或升级时,通过国内镜像缩短安装时长
- 标签列表
-
- 下划线是什么 (87)
- 精美网站 (58)
- qq登录界面 (90)
- nginx 命令 (82)
- nginx .http (73)
- nginx lua (70)
- nginx 重定向 (68)
- Nginx超时 (65)
- nginx 监控 (57)
- odbc (59)
- rar密码破解工具 (62)
- annotation (71)
- 红黑树 (57)
- 智力题 (62)
- php空间申请 (61)
- 按键精灵 注册码 (69)
- 软件测试报告 (59)
- ntcreatefile (64)
- 闪动文字 (56)
- guid (66)
- abap (63)
- mpeg 2 (65)
- column (63)
- dreamweaver教程 (57)
- excel行列转换 (56)
本文暂时没有评论,来添加一个吧(●'◡'●)