使用Tengine 对负载均衡进行状态检查(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://www.mzph.cn/pingmian/61039.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PHP服务器如何开启WSS服务端Websocket

在PHP中,开启WebSocket服务器端通常需要使用一些扩展或者库,因为PHP本身并不支持原生的WebSocket协议。一个常用的库是Ratchet,它是一个用于构建实时、双向、基于WebSocket的应用程序的PHP库。 以下是使用Ratchet开启WSS(WebSock…

2024 - 超火的多模态深度学习公共数据纯生信5+思路分享

超火的多模态深度学习公共数据纯生信5思路分享 多模态深度学习具有处理和整合多种类型信息的优势,特别是在预测患者预后方面能够结合不同类型的生物医学数据,如临床数据、基因表达数据、蛋白质组学数据、成像数据等,进而提高预后预测的准确性…

深入解析大带宽服务器:性能优势与选择指南

一、大带宽服务器是什么? 大带宽服务器指的是具备高网络带宽能力的服务器,通常提供1Gbps、10Gbps甚至更高的网络连接能力。与普通带宽服务器相比,大带宽服务器能够在更短时间内传输大量数据,因此常用于高流量、高并发需求的场景&…

深入探索高级SQL技巧:解锁数据查询与分析的无限可能

深入探索高级SQL技巧:解锁数据查询与分析的无限可能 在当今数据驱动的时代,SQL(Structured Query Language)作为数据库管理和查询的基础语言,其重要性不言而喻。然而,仅仅掌握基本的SELECT、INSERT、UPDA…

【MySQL】RedHat8安装mysql9.1

一、下载安装包 下载地址:MySQL Enterprise Edition Downloads | Oracle MySQL :: MySQL Community Downloads 安装包:mysql-enterprise-9.1.0_el8_x86_64_bundle.tar 官方 安装文档:MySQL Enterprise Edition Installation Guide 二、安装…

大前端的发展过程

大前端的发展过程可以概括为以下几个阶段: 静态页面时代(1990s - 2000s): 在Web的早期阶段,前端开发主要以静态页面为主,使用HTML、CSS、JavaScript等基础技术。这一时期的网页主要是静态的,交互…

力扣(leetcode)题目总结——动态规划篇

leetcode 经典题分类 链表数组字符串哈希表二分法双指针滑动窗口递归/回溯动态规划二叉树辅助栈 本系列专栏:点击进入 leetcode题目分类 关注走一波 前言:本系列文章初衷是为了按类别整理出力扣(leetcode)最经典题目&#xff0c…

Vscode/Code-server无网环境安装通义灵码

Date: 2024-11-18 参考材料:https://help.aliyun.com/zh/lingma/user-guide/individual-edition-login-tongyi-lingma?spma2c4g.11186623.0.i0 1. 首先在vscode/code-server插件市场中安装通义插件,这步就不细说了。如果服务器没网,会问你要…

fastadmin常用操作

数据库中遇到的操作 查询字段是json的某个值 //获取数据库中某个字段是json中得某个值,进行查询,goods是表中字段,brand_id是json中要查詢的字段。//数据类型一定要对应要不然查询不出来。$map[json_extract(goods, "$.brand_id")…

力扣周赛:第424场周赛

👨‍🎓作者简介:爱好技术和算法的研究生 🌌上期文章:力扣周赛:第422场周赛 📚订阅专栏:力扣周赛 希望文章对你们有所帮助 第一道题模拟题,第二道题经典拆分数组/线段树都…

STM32单片机设计防儿童人员误锁/滞留车内警报系统

目录 目录 前言 一、本设计主要实现哪些很“开门”功能? 二、电路设计原理图 1.电路图采用Altium Designer进行设计: 2.实物展示图片 三、程序源代码设计 四、获取资料内容 前言 近年来在车辆逐渐普及的情况下,由于家长的疏忽,将…

Vue Canvas实现区域拉框选择

canvas.vue组件 <template><div class"all" ref"divideBox"><!-- 显示图片&#xff0c;如果 imgUrl 存在则显示 --><img id"img" v-if"imgUrl" :src"imgUrl" oncontextmenu"return false" …

React Hooks 深度解析与实战

&#x1f493; 博客主页&#xff1a;瑕疵的CSDN主页 &#x1f4dd; Gitee主页&#xff1a;瑕疵的gitee主页 ⏩ 文章专栏&#xff1a;《热点资讯》 React Hooks 深度解析与实战 React Hooks 深度解析与实战 React Hooks 深度解析与实战 引言 什么是 Hooks? 定义 为什么需要 Ho…

开源音乐分离器Audio Decomposition:可实现盲源音频分离,无需外部乐器分离库,从头开始制作。将音乐转换为五线谱的程序

今天给大家分析一个音频分解器&#xff0c;通过傅里叶变换和信封匹配分离音乐中的各个音符和乐器&#xff0c;实现音乐到乐谱的转换。将音乐开源分离为组成乐器。该方式是盲源分离&#xff0c;从头开始制作&#xff0c;无需外部乐器分离库。 相关链接 代码&#xff1a;https:…

Android 6年经验面试总结 2024.11.15

背景&#xff1a;深圳 面过12家中大厂、4家中小厂&#xff0c;通过4家中大厂&#xff0c;2家offer。 针对六年的求职面试总结&#xff1a;项目经验70%30%基础&#xff08;基础应该必会&#xff09; 对于上来就问八股文的公司&#xff0c;对于已经工作了5年以上的开发来说&…

智慧安防丨以科技之力,筑起防范人贩的铜墙铁壁

近日&#xff0c;贵州省贵阳市中级人民法院对余华英拐卖儿童案做出了一审宣判&#xff0c;判处其死刑&#xff0c;剥夺政治权利终身&#xff0c;并处没收个人全部财产。这一判决不仅彰显了法律的威严&#xff0c;也再次唤起了社会对拐卖儿童犯罪的深切关注。 余华英自1993年至2…

【原创】java+ssm+mysql房屋租赁管理系统设计与实现

个人主页&#xff1a;程序猿小小杨 个人简介&#xff1a;从事开发多年&#xff0c;Java、Php、Python、前端开发均有涉猎 博客内容&#xff1a;Java项目实战、项目演示、技术分享 文末有作者名片&#xff0c;希望和大家一起共同进步&#xff0c;你只管努力&#xff0c;剩下的交…

Linux高阶——1116—环形队列生产者消费者

目录 1、环形队列 2、生产者消费者 环形队列数组实现代码 成功截图 1、环形队列 相比于线性队列&#xff0c;环形队列可以有效避免访问越界问题&#xff0c;使用下标访问队列元素时&#xff0c;到达末尾后下标归0&#xff0c;返回起始位置&#xff0c;使用下标运算即可 a…

9.C++面向对象6(实现一个较为完善的日期类)

⭐本篇重点&#xff1a;const成员变量和函数&#xff0c;取地址重载 ⭐本篇代码&#xff1a;c学习/02.c面向对象-中/2.实现完善的日期类 橘子真甜/c-learning-of-yzc - 码云 - 开源中国 (gitee.com) 目录 一. 日期类分析 二. 代码实现 2.1 构造函数 2.2 拷贝构造 2.3 …

构建SSH僵尸网络

import argparse import paramiko# 定义一个名为Client的类&#xff0c;用于表示SSH客户端相关操作 class Client:# 类的初始化方法&#xff0c;接收主机地址、用户名和密码作为参数def __init__(self, host, user, password):self.host hostself.user userself.password pa…