首页 > 其他分享 >使用Tengine 对负载均衡进行状态检查(day028)

使用Tengine 对负载均衡进行状态检查(day028)

时间:2024-11-19 17:19:40浏览次数:3  
标签:负载 http -- module nginx Tengine var path day028

本篇文章对于在服务器已经安装了nginx,但却希望使用Tengine 的状态检查或其他功能时使用,不需要卸载服务器上的nginx,思路是使用干净服务器(未安装过nginx)通过编译安装Tengine,通过对./configure的配置,保证安装Tengine的环境与nginx服务器相同,(同时,加入需要的Tengine模块),编译,最后将nginx代码传送至nginx服务器对应位置,覆盖原先nginx代码,完成nginx服务器上Tengine功能的更新。

1.前往Changelog - The Tengine Web Server,下载最新的tengine的tar包

2.解压tar包并进入目录中

3.编译安装前,安装依赖

yum install -y gcc make pcre pcre-devel openssl openssl-devel zlib zlib-devel  geoip geoip-devel perl perl-devel gperftools gperftools-devel libxslt libxslt-devel

yum install -y gd-devel

yum -y install perl-ExtUtils-Embed

此处例举大部分依赖,若下面出现问题大概率是此处缺少其他依赖

4.在已经配置好nginx的机器上,使用nginx  -V,查看nginx的configure  argument

--prefix=/usr/share/nginx --sbin-path=/usr/sbin/nginx --modules-path=/usr/lib64/nginx/modules --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --http-client-body-temp-path=/var/lib/nginx/tmp/client_body --http-proxy-temp-path=/var/lib/nginx/tmp/proxy --http-fastcgi-temp-path=/var/lib/nginx/tmp/fastcgi --http-uwsgi-temp-path=/var/lib/nginx/tmp/uwsgi --http-scgi-temp-path=/var/lib/nginx/tmp/scgi --pid-path=/run/nginx.pid --lock-path=/run/lock/subsys/nginx --user=nginx --group=nginx --with-compat --with-debug --with-file-aio --with-google_perftools_module --with-http_addition_module --with-http_auth_request_module --with-http_dav_module --with-http_degradation_module --with-http_flv_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_image_filter_module=dynamic --with-http_mp4_module --with-http_perl_module=dynamic --with-http_random_index_module --with-http_realip_module --with-http_secure_link_module --with-http_slice_module --with-http_ssl_module --with-http_stub_status_module --with-http_sub_module --with-http_v2_module --with-http_xslt_module=dynamic --with-mail=dynamic --with-mail_ssl_module --with-pcre --with-pcre-jit --with-stream=dynamic --with-stream_ssl_module --with-stream_ssl_preread_module --with-threads --with-cc-opt='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -m64 -mtune=generic' --with-ld-opt='-Wl,-z,relro -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -Wl,-E'

5.配置环境,在目录中运行如下命令(./configure     上面复制的配置信息+需要添加的模块)

注意:此处需要在tengine目录下,因为下面使用的是相对地址

因为tengine服务把ngx常用的第3方模块放在了源代码中的modules目录下面。

--add-module=modules/ngx_http_upstream_check_module 编译安装的时候增加upstream_check模块

--add-module=modules/ngx_http_upstream_session_sticky_module/ 增加会话共享模块

./configure --prefix=/usr/share/nginx --sbin-path=/usr/sbin/nginx --modules-path=/usr/lib64/nginx/modules --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --http-client-body-temp-path=/var/lib/nginx/tmp/client_body --http-proxy-temp-path=/var/lib/nginx/tmp/proxy --http-fastcgi-temp-path=/var/lib/nginx/tmp/fastcgi --http-uwsgi-temp-path=/var/lib/nginx/tmp/uwsgi --http-scgi-temp-path=/var/lib/nginx/tmp/scgi --pid-path=/run/nginx.pid --lock-path=/run/lock/subsys/nginx --user=nginx --group=nginx --with-compat --with-debug --with-file-aio --with-google_perftools_module --with-http_addition_module --with-http_auth_request_module --with-http_dav_module --with-http_degradation_module --with-http_flv_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_image_filter_module=dynamic --with-http_mp4_module --with-http_perl_module=dynamic --with-http_random_index_module --with-http_realip_module --with-http_secure_link_module --with-http_slice_module --with-http_ssl_module --with-http_stub_status_module --with-http_sub_module --with-http_v2_module --with-http_xslt_module=dynamic --with-mail=dynamic --with-mail_ssl_module --with-pcre --with-pcre-jit --with-stream=dynamic --with-stream_ssl_module --with-stream_ssl_preread_module --with-threads --with-cc-opt='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -m64 -mtune=generic' --with-ld-opt='-Wl,-z,relro -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -Wl,-E' --add-module=modules/ngx_http_upstream_check_module/ --add-module=modules/ngx_http_upstream_session_sticky_module/

6.进行编译

make -j  1    这里1为cpu核心,或者直接make也可以

正常这一步如果要安装Tengine,make install 即可,这里不需要安装。

7.将当前目录下的objs下的nginx代码传到负载均衡服务器

scp ./objs/nginx lb01:~

8.负载均衡服务器检查./nginx -V,检查scp过来的nginx信息

注意图片最后两行已经加了对应的模块

9.将nginx代码替换掉原来的,scp是传至家目录,所以下面两条命令执行也是在家目录下。

mv  /sbin/nginx /sbin/nginx1

mv nginx /sbin/nginx

10.nginx -V,检查nginx信息,此时已经可以看到信息如第8步一致

注意:第八步看的是家目录下的nginx代码信息,此处看的是服务器nginx代码信息

nginx -t,检查语法

kill -USR2 pid  (通过老的命令向当前运行的ngx发送信号,准备被新的ngx进程替代)

kill pid(之前的ngx服务)

systemctl restart nginx 重新启动nginx。

11.对需要状态检查的页面进行配置,可以参考Tengine官网(ngx_http_upstream_check_module - The Tengine Web Server

配置完成即可查看各个web服务器信息

12.各个参数

check interval=3000 rise=2 fall=5 timeout=1000 type=http;

检查间隔3000ms,成功两次即为活跃状态,失败五次即为挂掉状态,检查类型为http请求

check_http_send              代理向web服务器通过http方式发出请求报文,请求报文起始行,请求方法, 请求的URI,请求协议(默认使用的是ip方式 访问

check_http_expect_alive    收到指定的状态码,就认为是存活的

标签:负载,http,--,module,nginx,Tengine,var,path,day028
From: https://blog.csdn.net/ccnnlxc/article/details/143829084

相关文章

  • RCD负载箱的技术参数和规格有哪些需要注意的?
    RCD负载箱是专门用于测试电力设备的设备,主要用于检测电路的电流、电压和功率等参数。此外,它也是一种用于测试和验证电气设备在故障状态下的性能的设备,可以模拟真实的负载情况,帮助工程师和技术人员对设备进行检测和维护。在购买和使用RCD负载箱时,需要注意以下几个技术参数和规格:......
  • 自动化运维-检测Linux服务器CPU、内存、负载、IO读写、机房带宽和服务器类型等信息脚
    前言:以上脚本为今年8月1号发布的,当时是没有任何问题,但现在脚本里网络速度测试py文件获取不了了,测速这块功能目前无法实现,后面我会抽时间来研究,大家如果有建议也可以分享下。脚本内容:#!/usr/bin/envbash####RED='\033[0;31m'GREEN='\033[0;32m'YELLOW='\033[0;33......
  • 永磁同步电机负载估计--降阶龙贝格观测器
    一、原理介绍本文采用降阶龙贝格负载转矩观测器观测负载扰动并前馈至电流环,改善PI调节器的抗负载扰动能力降阶龙贝格负载转矩观测器的状态方程为二、仿真模型在MATLAB/simulink(软件版本为2024A)里面验证所提算法,搭建仿真。采用和实验中一致的控制周期1e-4,电机部分计算周期......
  • 微服务组件【负载均衡】Netflix Ribbon
    微服务组件【负载均衡】NetflixRibbonNetflixRibbon**RestTemplate:负载均衡拦截**HttpAccessor#createRequestInterceptingRequestExecution#executeRibbon负载均衡LoadBalancerClientILoadBalancerIRuleServer博主默语带您GotoNewWorld.✍个人主页......
  • RocketMQ负载均衡-消费者的负载均衡-统一哈希算法
    RocketMQ消费者的负载均衡-一致性哈希算法简介在分布式系统中,负载均衡是确保系统高效、可靠运行的关键。RocketMQ作为一款高性能的分布式消息中间件,通过多种负载均衡策略,实现消息队列在多个消费者之间的合理分配。其中,一致性哈希算法(ConsistentHashing)是一种先进的负......
  • 负载箱在确保可靠电力分配中的作用
    负载箱是电力系统中的重要设备,它在确保可靠电力分配中起着至关重要的作用。负载箱的主要功能是在电力系统运行过程中,模拟实际的电力负荷,以便对电力系统进行各种性能测试和分析。这些测试和分析可以帮助电力系统的运营商和维护人员了解电力系统的实际运行状态,及时发现和解决潜在的......
  • 4. Spring Cloud Ribbon 实现“负载均衡”的详细配置说明
    4.SpringCloudRibbon实现“负载均衡”的详细配置说明@目录4.SpringCloudRibbon实现“负载均衡”的详细配置说明前言1.Ribbon介绍1.1LB(LoadBalance负载均衡)2.Ribbon原理2.2Ribbon机制3.SpringCloudRibbon实现负载均衡算法-应用实例4.总结:5.最后:前言......
  • 储能PCS的负载设备和工具有哪些?
    储能变流器PCS(PowerConversionSystem)是能量存储和转换的核心设备,它连接蓄电池组和电网(或负荷)之间,实现电能的双向转换。具体来说,它可以控制蓄电池的充电和放电过程,进行交直流的变换。在没有电网的情况下,PCS可以直接为交流负荷供电。PCS主要由DC/AC双向变流器和控制单元等构成。......
  • 性能测试之JDBC连接、分布式负载
    一、JmeterJDBC连接Jmeter支持连接数据库,对SQL语句进行性能测试,JDBCConnetctionConfiguration用来配置连接信息。1、把JDBC驱动的jar包引入测试计划Jmeter要连接mysql数据库,首先得下载mysqljdbc驱动包,这里使用的是mysql-connector-java-5.1.7-bin.jar选择测试计划——......
  • 面试官:说说Ribbon是如何实现负载均衡的?
    Ribbon的作用是负载均衡,但是根据我面试他人的情况来看,很多人只忙于业务,而不清楚具体的底层原理,在面试中是很容易吃亏的。基于此,本文就来分析一下Ribbon的原理,如果看不惯的话,可以直接看最后的总结。一、基础概念1.什么是Ribbon目前主流的负载方案分为以下两种:集中式负载......