Tongweb7049m4+THS6010-6012配置故障轉移+重試机制(by lqw)
使用场景
1.ths代理tongweb多套后端,假如有其中一套tongweb因为服务器重启或者宕机后没有及时启动,导致ths一直轮询在这个出故障的节点上。
2.即使在tongweb重启了,有的应用启动也需要一定的时间,这个时候只是启动了应用端口,ths仍有可能轮询在对应的tongweb上。
说明:
本文仅供参考,里面的参数配置,最终请根据自身业务场景进行调整。
服务器配置
本次示范使用两台服务器(113和114),分别搭建两套ths和两套tongweb做负载均衡和反向代理,浮动ip使用151,tongweb部分配置了测试用的ssl证书(如何配置ssl的可自行百度)。


httpserver.conf配置
#user nobody;
worker_processes auto;
worker_cpu_affinity auto;
#error_log logs/error.log;
#error_log logs/error.log notice;
error_log logs/error.log info;
pid logs/httpserver.pid;events {worker_connections 1024;use epoll;
}http {include mime.types;default_type application/octet-stream;log_format main '$remote_addr - $remote_user [$time_local] "$request" ''$status $body_bytes_sent "$http_referer" ''"$http_user_agent" "$http_x_forwarded_for"';#access_log logs/access.log main;access_log off;sendfile on;#tcp_nopush on;#keepalive_timeout 0;keepalive_timeout 60;# 设置5秒的超时时间#proxy_connect_timeout 5s;# 连接超时#proxy_read_timeout 5s;# 读取超时#proxy_send_timeout 5s;# 发送超时# 配置切换到其他后端的条件,包括超时和错误状态码proxy_next_upstream error timeout http_404 http_500 http_502 http_503 http_504 http_403;#gzip on;upstream tongweb {#ip_hash;#server后填写对应所有前端机器的ipserver 192.168.10.113:8088 max_fails=3 fail_timeout=2s;server 192.168.10.114:8088 max_fails=3 fail_timeout=2s;#keepalive 200;health_check interval=30000 rise=1 fall=3 type=ssl_hello;#keepalive_requests 10000;}server {server_name localhost_ths_monitor;listen 49151;access_log off;allow 127.0.0.1;deny all;location /thsapi/ {api /status;}}server {listen 8080;server_name localhost;#charset koi8-r;#access_log logs/host.access.log main;access_log off;#proxy_next_upstream error timeout http_404 http_500 http_502 http_503 http_504 http_403;location / {root html;index index.html index.htm;}#error_page 404 /404.html;# redirect server error pages to the static page /50x.htmlerror_page 500 502 503 504 /50x.html;location = /50x.html {root html;}# proxy the PHP scripts to Apache listening on 127.0.0.1:80##location ~ \.php$ {# proxy_pass http://127.0.0.1;#}# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000##location ~ \.php$ {# root html;# fastcgi_pass 127.0.0.1:9000;# fastcgi_index index.php;# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;# include fastcgi_params;#}# deny access to .htaccess files, if Apache's document root# concurs with httpserver's one##location ~ /\.ht {# deny all;#}}server {listen 443 ssl;server_name localhost;# 配置 SSL 证书和密钥ssl_certificate tools/crt_demo/server.crt;ssl_certificate_key tools/crt_demo/server.key;proxy_next_upstream error timeout http_404 http_500 http_502 http_503 http_504 http_403;location / {proxy_pass https://tongweb;}}# HTTPS server#server {#listen 443 ssl;#server_name localhost;#ssl_protocols TLSv1.2 TLSv1.3;#GMTLS key#ssl_gmtls on;#ssl_certificate crts/SS.pem crts/SE.pem;#ssl_certificate_key crts/SS.key.pem crts/SE.key.pem;#https key#ssl_certificate crts/common_cert/server.crt;#ssl_certificate_key crts/common_cert/server.key;#ssl_session_cache shared:SSL:1m;#ssl_session_timeout 5m;#ssl_ciphers HIGH:!aNULL:!MD5;#ssl_prefer_server_ciphers on;#location / {#root html;#index index.html index.htm;#}#}
}
其中核心配置部分主要是这两个地方:




备注:
1.proxy_next_upstream error timeout http_404 http_500 http_502 http_503 http_504 http_403;作用在http,server和location块,请不要配置在其他地方,一般情况下建议可以配在http块里。
测试
先測試113和114部署的應用是否能正常訪問


然後測試用ths的端口訪問是否能正常訪問(包括浮動ip):



然後可以自己在命令行頁面kill掉其中一台服务器上的tongweb进程,或者在其中一台tongweb控制台上停止该应用(生产环境不推荐,本文只是做测试才用)。

再去访问停掉的应用,发现是访问不了的:

去访问ths和浮动ip,仍然是正常的:



相关文章:
Tongweb7049m4+THS6010-6012配置故障轉移+重試机制(by lqw)
使用场景 1.ths代理tongweb多套后端,假如有其中一套tongweb因为服务器重启或者宕机后没有及时启动,导致ths一直轮询在这个出故障的节点上。 2.即使在tongweb重启了,有的应用启动也需要一定的时间,这个时候只是启动了应用端口&…...
在线客服系统网站源码-网页聊天客服实现代码
源码简介 在线客服系统 – 网上客服系统,在线客服系统网站源码。 消息预知功能就是别人在聊天框打字你都能看到 1.新增客服坐席消息互动,客服之间可以互相接收消息,可以智能分配 2.新增消息预知功能,可提前预知访客已输入未发…...
JioNLP:一款实用的中文NLP预处理工具包
一、什么是 JioNLP? JioNLP是一个面向NLP开发者的工具包,提供了常见的中文文本预处理、解析等功能,使用简单、高效准确、无需配置,可极大加快NLP项目的开发进度。 主要特点包括: 代码开源,使用MIT协议功能丰富,涵盖多个NLP预处理需求使用简单,无需复杂配置即可调用准确高效…...
GR-ConvNet论文 学习笔记
GR-ConvNet 文章目录 GR-ConvNet前言一、引言二、相关研究三、问题阐述四、方法A.推理模块B.控制模块C.模型结构D.训练方法E.损失函数 五、评估A.数据集B.抓取评判标准 六、实验A.设置B.家庭测试物体C.对抗性测试物体D.混合物体 七、结果A.康奈尔数据集B.Jacquard数据集C.抓取新…...
windows环境批量删除指定目录下的全部指定文件
写在开头: 1. 涉及文件删除,先在小范围内测试(更改D:\扫描文件路径) 2. 命令会递归该目录下的所有文件 命令: forfiles /p D:\ /s /m _maven.repositories /c "cmd /c del path"解释: /p D:\ …...
水深探测仪的作用和使用方法
在水域救援的行动里,救援人员时刻面临着复杂多变、充满未知的水域状况。当接到救援任务奔赴现场,那片需要涉足的水域就像一个神秘莫测的异世界,挑战着所有人的认知与勇气。 水深探测仪作为一种专用于测量水域深度的设备,通过声波和…...
Leetcode 搜索插入位置
这段代码的核心思想是 二分查找,用于在一个已经排序的数组中查找目标值的位置。如果目标值存在于数组中,返回它的索引;如果目标值不存在,返回它按顺序应该插入的位置。 算法思想步骤: 定义左右边界: 我们使…...
jsp怎么实现点赞功能
在JSP中实现点赞功能通常涉及前端页面的设计、后端逻辑处理以及数据存储。为了实现点赞功能,你可以使用以下步骤: 前端(JSP页面)设计 前端部分包括显示点赞按钮,并通过Ajax发送点赞请求,以避免页面刷新。 …...
取消microsoft edge作为默认浏览器 ,修改方法,默认修改不了的原因
将Microsoft Edge或其它浏览器设置为默认浏览器,可以尝试以下方法来解决此问题: 一, 通过浏览器设置修改:打开Microsoft Edge浏览器,单击右上角的“更多”按钮,然后选择“设置”。在设置页面左侧找到“默认…...
C++面试速通宝典——17
283. Nginx负载均衡算法 Nginx支持多种负载均衡算法。 轮询(Round Robin):默认算法,按顺序逐个分配请求到后端服务器。加权轮询(Weighted Round Robin):与轮询类似,但…...
10、论文阅读:基于双阶对比损失解纠缠表示的无监督水下图像增强
Unsupervised Underwater Image Enhancement Based on Disentangled Representations via Double-Order Contrastive Loss 前言引言方法介绍解耦框架多尺度生成器双阶对比损失双阶对比损失总结损失函数实验前言 在水下环境中拍摄的图像通常会受到颜色失真、低对比度和视觉质量…...
Git配置token免密登录
配置token免密登录 如果不用ssh免密登录,还有其他基于Token那得免密登录方法吗? 2021年开始,github就不能使用密码登录git了,需要使用token作为密码登录,需要自己在setting中创建。 那么每次都需要我手动输入token密…...
活动预告|博睿数据将受邀出席GOPS全球运维大会上海站!
第二十四届 GOPS 全球运维大会暨研运数智化技术峰会上海站将于2024年10月18日-19日在上海中庚聚龙酒店召开。大会将为期2天,侧重大模型、DevOps、SRE、AIOps、BizDevOps、云原生及安全等热门技术领域。特设了如大模型 运维/研发测试、银行/证券数字化转型、平台工程…...
Flutter技术学习
以下内容更适用于 不拘泥于教程学习,而是从简单项目入手的初学者。 在开始第一个项目之前,我们先要了解 两个概念。 Widget 和 属性 Widget 是用户界面的基本构建块,可以是任何 UI 元素。属性 是 widget 类中定义的变量,用于配…...
Kubernetes网络通讯模式深度解析
Kubernetes的网络模型建立在所有Pod能够直接相互通讯的假设之上,这构建了一个扁平且互联的网络空间。在如GCE(Google Cloud Engine)等云环境中,这一网络模型已预先配置,但在自建的Kubernetes集群中,我们需要…...
SBTI科学碳目标是什么?有什么重要意义
SBTI(Science Based Targets initiative),即科学碳目标倡议,是一个由全球环境信息研究中心(CDP)、联合国全球契约组织(UNGC)、世界资源研究所(WRI)和世界自然…...
英特尔新旗舰 CPU 将运行更凉爽、更高效,适合 PC 游戏
英特尔终于解决了台式机 CPU 发热和耗电的问题。英特尔的新旗舰 Core Ultra 200S 系列处理器将于 10 月 24 日上市,该系列专注于每瓦性能,比之前的第 14 代芯片运行更凉爽、更高效。这些代号为 Arrow Lake S 的处理器也是英特尔首款内置 NPU(…...
MySQL 启动失败 (code=exited, status=1/FAILURE) 异常解决方案
目录 前言1. 问题描述2. 查看错误日志文件2.1 确认日志文件路径2.2 查看日志文件内容 3. 定位问题3.1 问题分析 4. 解决问题4.1 注释掉错误配置4.2 重启 MySQL 服务 5. 总结结语 前言 在日常运维和开发过程中,MySQL数据库的稳定运行至关重要。然而,MySQ…...
通信工程学习:什么是RIP路由信息协议
RIP:路由信息协议 RIP(Routing Information Protocol)路由信息协议是一种基于距离矢量算法的内部网关协议(IGP),主要用于在自治系统(AS)内部进行路由信息的交换和传播。以下是关于RI…...
SQL调优指南与高级技巧:打造高效数据库查询
在当今数据驱动的世界中,SQL(结构化查询语言)作为与关系型数据库交互的主要语言,其性能直接影响着整个应用系统的响应速度和用户体验。本文将深入探讨SQL调优的方法论和高级技巧,帮助开发者和数据库管理员提升查询效率…...
优化问题求解器选型指南:何时该用高斯伪谱法,而不是直接法或打靶法?
优化问题求解器选型指南:高斯伪谱法在动态系统控制中的战略定位 当面对化工反应器温度控制或航天器轨道转移这类复杂动态系统优化问题时,工程师们常陷入算法选择的困境。就像外科医生需要根据病灶位置选择手术刀或激光治疗一样,最优控制问题的…...
《数据结构》| 第十章 排序算法实战指南
1. 排序算法入门:为什么我们需要这么多排序方法? 第一次接触排序算法时,很多人都会有这样的疑问:既然都能把数据排好序,为什么还要学这么多种算法?这就像装修时既有电钻又有锤子——每种工具都有最适合的使…...
告别Finalshell内存焦虑:实测Xshell 8与MobaXterm,哪款才是低资源占用的SSH神器?
深度评测:Xshell 8与MobaXterm如何解决SSH工具的资源占用难题? 当你的开发工作流被频繁的内存告警打断时,选择一款轻量高效的SSH工具就成为了提升生产力的关键。作为每天需要连接多台服务器的开发者,我深刻理解那种看着任务管理器…...
告别AT指令:在STM32上移植ESP8266 RTOS SDK,更稳定地接入米家智能插座
STM32与ESP8266 RTOS深度整合:构建高可靠米家智能插座开发框架 从AT指令到RTOS SDK的技术跃迁 在智能家居设备开发领域,ESP8266模块与STM32的组合堪称经典搭配。然而,大多数开发者仍停留在使用AT指令集进行基础通信的阶段,这种方案…...
RPA-Python与pytest-arangodb集成:10步实现ArangoDB测试自动化完整指南
RPA-Python与pytest-arangodb集成:10步实现ArangoDB测试自动化完整指南 【免费下载链接】RPA-Python Python package for doing RPA 项目地址: https://gitcode.com/gh_mirrors/rp/RPA-Python RPA-Python是一个强大的Python机器人流程自动化工具包࿰…...
如何控制Rainmeter皮肤背景视频的有限循环播放次数
如何控制Rainmeter皮肤背景视频的有限循环播放次数 【免费下载链接】rainmeter Desktop customization tool for Windows 项目地址: https://gitcode.com/gh_mirrors/ra/rainmeter Rainmeter作为一款强大的Windows桌面自定义工具,允许用户通过皮肤实现丰富的…...
Opencascade避坑指南:Select()函数7个常见使用误区与调试技巧
Opencascade避坑指南:Select()函数7个常见使用误区与调试技巧 在三维建模和CAD开发领域,Opencascade作为一款强大的开源几何内核,其交互功能一直是开发者关注的焦点。而AIS_InteractiveContext中的Select()函数,作为对象选取的核心…...
H3C无线调优案例
用户报无线经常掉线,用户现场无线用的H3C 首先登录无线控制器搜集对应接入体验差的AP的诊断日志,从日志中可以看到AP有线上行口的组播广播包数量远远超过了单播报文;没有CRC错误报文,说明网线质量没有问题。接着看:我们…...
OpenClaw排错指南:Qwen3-VL:30B部署常见问题与解决方案
OpenClaw排错指南:Qwen3-VL:30B部署常见问题与解决方案 1. 问题背景与排查准备 上周我在本地部署Qwen3-VL:30B模型并接入OpenClaw时,遇到了不少"坑"。这个号称最强的多模态大模型确实强大,但在私有化部署过程中,从模型…...
GTE模型与Visual Studio智能编程插件的集成
GTE模型与Visual Studio智能编程插件的集成 1. 引言 作为一名每天要写大量代码的程序员,我经常遇到这样的情况:突然想不起来某个API的具体用法,或者需要查找某个功能的实现示例。传统的做法是打开浏览器,在各种文档和论坛中搜索…...
