当前位置: 首页 > news >正文

Python 全栈系列244 nginx upstream 负载均衡 踩坑日记

说明

最初是因为租用算力机(Python 全栈系列242 踩坑记录:租用算力机完成任务),所以想着做一个负载均衡,然后多开一些服务,把配置写在nginx里面就好了。

一开始租用了一个3080起了一个服务,后来觉得速度不够快,再起了3个4090,每个4090起3个服务。然后,觉得速度够了就把3080那台机器退了。再之后调用的时候,发现服务不太稳定,之前是猜测可能共享带宽导致连接不稳。然后今天发现,可能是nginx没搞对…

内容

1 概述

最初我认为负载均衡默认就带了健康检测的功能,nginx应该可以识别那些反向代理的服务器,那些有问题,然后避开它。实际上1.19版是没有的,没有这个模块时,负载均衡总是一视同仁的去调用那些已经挂掉的服务。只要有一个服务挂了,整个体验就是卡卡的。

简单来说,就是要装一个check_module插件。传统办法好像要自己下载,然后重新编译啥的,看起来就很麻烦。然后我就想取个巧,但发现这个还要碰运气。

└─ $ docker search nginx_upstream_check_module
NAME                                    DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
[不行]yuxhuang/alpine-libressl-luajit-nginx   Alpine NGINX with HTTP2 support, with libres…   3                    [OK]
[不行]joshm1/nginx                            Nginx 1.9.4 with the nginx_upstream_check_mo…   1
[可以]mrlioncub/nginx_upstream_check_module   Nginx compiled with Health checks upstreams …   0
oxnme/openresty                         openresty with nginx_upstream_check_module      0
johnwu/nginx                            Nginx-1.10.3 with luaJIT nginx_upstream_chec…   0                    [OK]
chromerobv/nginx                        nginx compiled with nginx_upstream_check_mod…   0                    [OK]
shiurn/nginx                            nginx-1.20+nginx_upstream_check_module+nginx…   0
congcong126/nginx-check                 add nginx_upstream_check_module                 0
sola97/nginx                            nginx-http3 with nginx_upstream_check_module…   0
hejtao/nginx-hc                         health check;  nginx_upstream_check_module;0

测试命令

docker run -it \--rm \--name=entapi_realtime_api \-v /etc/localtime:/etc/localtime  \-v /etc/timezone:/etc/timezone\-v /etc/hostname:/etc/hostname\-e "LANG=C.UTF-8" \-p 34103:34103\-v /home/nginx_confs/realent_34103_nginx.conf:/etc/nginx/nginx.conf \mrlioncub/nginx_upstream_check_module

启动后,nginx会发现某个服务失效了
在这里插入图片描述
然后在调用过程中,nginx一方面响应请求,一方面继续对服务进行健康检查,所以虽然服务报错了,但并不影响请求的调用。
在这里插入图片描述

2 配置文件

整个配置非常简单,主要就是check interval=3000 rise=2 fall=5 timeout=1000

events {#设置工作模式为epoll,除此之外还有select,poll,kqueue,rtsig和/dev/poll模式use epoll;#定义每个进程的最大连接数,受系统进程的最大打开文件数量限制worker_connections  1024;
}http{# 配置nginx上传文件最大限制client_max_body_size 50000m;upstream multi_ent {# fair;server 183.252.181.66:10000;server XXX:10000  ;server XXX:10001  ;# 健康检查配置check interval=3000 rise=2 fall=5 timeout=1000;}server {listen 34103;location / {proxy_pass http://multi_ent;# proxy_next_upstream error timeout invalid_header http_502 http_504 http_404;}}}

3 配置更新

3.1 重载配置

容器名 nginx_34103_entapi_realtime_api


检查配置
docker exec nginx_34103_entapi_realtime_api  nginx -t重载配置
docker exec nginx_34103_entapi_realtime_api  nginx -s reload

3.2 重启容器

还是需要重启容器

docker restart nginx_34103_entapi_realtime_api

查看日志

 docker logs nginx_34103_entapi_realtime_api --tail=100

相关文章:

Python 全栈系列244 nginx upstream 负载均衡 踩坑日记

说明 最初是因为租用算力机(Python 全栈系列242 踩坑记录:租用算力机完成任务),所以想着做一个负载均衡,然后多开一些服务,把配置写在nginx里面就好了。 一开始租用了一个3080起了一个服务,后来觉得速度不够快,再起了…...

数据链路层——计算机网络学习笔记三

使用点对点信道的数据链路层 前言: 1.数据链路层的重要性:网络中的主机、路由器都必须实现数据连输层; 2.数据链路层中使用的信道: 点对点信道:这种信道是一对一的通信方式; 广播信道:使用一对多…...

leetcode——反转链表

206. 反转链表 - 力扣(LeetCode) 思路:创建三个指针n1,n2,n3,遍历原链表,通过三者之间的关系将链表反转。下面给出图示: 下面给出题解代码: typedef struct ListNode ListNode; struct List…...

类加载机制(双亲委派机制)

文章目录 JVM的作用是什么双亲委派机制加载流程 JVM的作用是什么 我们运行Java程序时,要安装JDK,JDK包含JVM,不同环境的JDK都是不同的。 Java 代码在编译后会形成 class 的字节码文件,该字节码文件通过 JVM 解释器,生…...

nss刷题(2)

1、[NSSCTF 2022 Spring Recruit]ezgame 打开题目是一个游戏界面 发现是有分数的,猜测分数达到某个之后可以获得flag,查看源码看一下 看到末尾显示分数超过65后显示flag 在js中找到了一个score,将他的值改为大于65的数后随意玩一次就可以得到flag同时&a…...

2024 年“泰迪杯”A 题:生产线的故障自动识别与人员配置--第四题(用遗传算法解决生产线排班问题--matlab代码)

问题背景: 问题四:根据实际情况,现需要扩大生产规模,将生产线每天的运行时间从 8 小时增加 到 24 小时不间断生产,考虑生产线与操作人员的搭配,制定最佳的操作人员排班方案,要求满足以下条件&am…...

资产公物仓管理系统|实现国有资产智能化管理

1、项目背景 资产公物仓管理系统(智仓库DW-S201)是一套成熟系统,依托互3D技术、云计算、大数据、RFID技术、数据库技术、AI、视频分析技术对RFID智能仓库进行统一管理、分析的信息化、智能化、规范化的系统。 项目设计原则 方案对公物仓资…...

实用的 Google Chrome 命令

以下是一些实用的 Google Chrome 命令: chrome://version - 显示 Chrome 浏览器的详细信息,包括版本号、用户代理和命令行参数等。 chrome://flags - 打开 Chrome 实验性功能页面,可以启用或禁用各种实验性功能。请注意,这些功能…...

动态规划算法:⼦数组、⼦串系列(数组中连续的⼀段)

例题一 解法(动态规划): 算法思路: 1. 状态表⽰: 对于线性 dp ,我们可以⽤「经验 题⽬要求」来定义状态表⽰: i. 以某个位置为结尾,巴拉巴拉; ii. 以某个位置…...

2010年认证杯SPSSPRO杯数学建模D题(第一阶段)服务网点的分布全过程文档及程序

2010年认证杯SPSSPRO杯数学建模 D题 服务网点的分布 原题再现: 服务网点、通讯基站的设置,都存在如何设置较少的站点,获得较大效益的问题。通讯基站的覆盖范围一般是圆形的,而消防、快餐、快递服务则受到道路情况和到达时间的限…...

docker-compose 安装ZLMediaKit,ffmpeg、VLC实现推流并播放

1、目录(创建conf文件夹,777权限) 二、docker-compose.yml version: "3.9"services:zlmediakit:image: zlmediakit/zlmediakit:mastercontainer_name: zlmediakitprivileged: true# 指定加载配置# command: /opt/media/bin/MediaS…...

|Python新手小白中级教程|第二十八章:面向对象编程(类定义语法私有属性类的继承与多态)(4)

文章目录 前言一、类定义语法二、私有方法和私有属性1.私有属性2.私有方法 三、类“继承”1.初识继承2.使用super函数调用父类中构造的东西 四、类“多态”1.多态基础2.子类不同形态3.使用isinstance函数与多态结合判断类型 总结 前言 大家好,我是BoBo仔吖&#xf…...

vue项目基于WebRTC实现一对一音视频通话

效果 前端代码 <template><div class"flex items-center flex-col text-center p-12 h-screen"><div class"relative h-full mb-4 fBox"><video id"localVideo"></video><video id"remoteVideo">…...

web 基础之 HTTP 请求

web 基础 网上冲浪 就是在互联网(internet)上获取各种信息&#xff0c;进行工作&#xff0c;或者娱乐&#xff0c;他的英文表示surfing the Internet&#xff0c;因 “surfing”d的意思是冲浪&#xff0c;即成为网上冲浪&#xff0c;这是一种形象说法&#xff0c; 也是一个非…...

嵌入式 - GPIO编程简介

An Introduction to GPIO Programming By Jeff Tranter Wednesday, June 12, 2019 编者按&#xff1a;本 2019 年博客系列是 ICS 最受欢迎的系列之一&#xff0c;现已更新&#xff08;2022 年 12 月&#xff09;&#xff0c;以确保内容仍然准确、相关和有用。 本博客是 Integr…...

8种区块链开发者必须知道的顶级编程语言!

我来问你一个问题&#xff1a;请说出一种技术&#xff0c;它以去中心化、不可篡改和透明性等核心特征席卷了全球。 这个问题的答案是&#xff0c;当然是区块链&#xff0c;它在近些年进入大家的视野并颠覆了工商业&#xff0c;没有任何其他技术能够做到这一点。 预计从2020年…...

十三、Redis哨兵模式--Sentinel

上一篇介绍了Redis中的主从复制。我们知道Redis主从中一般只有主节点对外提供写操作&#xff0c;如果主节点发生故障&#xff0c;为了保证Redis的可用性&#xff0c;这时就要在可用的slave节点中&#xff0c;挑选一个作为主节点。这种切换操作如果是人为的操作&#xff0c;那么…...

[力扣题解]1005. K 次取反后最大化的数组和

题目&#xff1a;1005. K 次取反后最大化的数组和 思路 贪心法&#xff1b; 用绝对值大小排序&#xff0c;自己写一个比较函数&#xff0c; static bool compare(int a, int b) {return abs(a) > abs(b); }注意这样写出来是降序排列&#xff1b; 代码 class Solution {…...

Web UI自动化测试--PO模式

没有PO实现的测试用例的问题: 重用性低:登录功能重复可维护性差:数据和代码混合可读性差:元素定位方法杂乱(id、xpath、css混杂)可读性差:不易识别操作的含义(特别是css和xpath语法)可维护性差:如果某个元素的属性改了,你要更改多次PO(Page Object Model)页面对象模型…...

Python进阶之-反射机制详解

✨前言&#xff1a; 什么是反射&#xff1f; Python中的“反射”是一个编程术语&#xff0c;它指的是程序在运行时能够检查和操作其自身状态的能力&#xff0c;特别是通过名称&#xff08;通常是字符串&#xff09;来访问对象的属性、方法和其他组成部分。这种机制允许代码动态…...

从攻到防:手把手在Kali Linux上搭建ARP欺骗实验环境(含Wireshark分析)

构建安全的本地网络实验室&#xff1a;Kali Linux下ARP欺骗攻防实战指南 在网络安全领域&#xff0c;理解攻击原理是构建有效防御的第一步。ARP欺骗作为一种经典的中间人攻击技术&#xff0c;常被用于网络渗透测试中。本文将带你从零开始搭建一个完全隔离的虚拟实验环境&#x…...

Hitboxer:专业级SOCD按键重映射工具,3分钟解决游戏输入冲突

Hitboxer&#xff1a;专业级SOCD按键重映射工具&#xff0c;3分钟解决游戏输入冲突 【免费下载链接】socd Key remapper for epic gamers 项目地址: https://gitcode.com/gh_mirrors/so/socd 还在为游戏中同时按下相反方向键导致角色卡顿而烦恼吗&#xff1f;Hitboxer是…...

权限管理测试

在 RuoYi&#xff08;若依&#xff09;系统中&#xff0c;要实现一个自定义接口的权限验证&#xff0c;通常需要遵循 “后端定义 -> 前端配置 -> 角色分配 -> 测试验证” 的流程。以下是具体的实施步骤及详细解析&#xff1a;第一步&#xff1a;后端定义接口并添加注解…...

FPGA数学库设计:从定点数、CORDIC到AXI-Stream的硬件算法实现

1. 项目概述&#xff1a;为什么我们需要一个FPGA数学库&#xff1f;如果你在FPGA开发中做过信号处理、图像算法或者任何需要复杂数学运算的设计&#xff0c;大概率会面临一个共同的困境&#xff1a;如何高效、可靠地实现那些看似基础的数学函数&#xff1f;比如&#xff0c;计算…...

从张宇考研课到Matlab实战:手把手教你用Grunwald-Letnikov公式实现分数阶求导

从数学理论到代码实践&#xff1a;Grunwald-Letnikov公式在分数阶求导中的完整实现路径 当我们在学习传统微积分时&#xff0c;整数阶导数&#xff08;如一阶导数表示变化率&#xff0c;二阶导数表示曲率&#xff09;的概念已经深入人心。然而&#xff0c;数学的世界远不止于此…...

注册培训师、咨询师——杨刚老师简介

注册培训师、咨询师——杨刚老师简介注册培训师、咨询师 MTP认证讲师——日本产业训练协会认证 世界500强管理目视化解决方案 版权持有人 杨老师具备10年生产管理经验、15年培训及咨询辅导经验。曾任某日资企业制作课课长、某上市企业精益经理、某民营企业绩效经理、某咨…...

PSIM与ModelSim的VHDL联合仿真:数字电源控制算法验证利器

1. 项目概述&#xff1a;为什么要在PSIM里搞VHDL联合仿真&#xff1f;做电源硬件或者电力电子控制的朋友&#xff0c;肯定对PSIM不陌生。它是个专门搞电力电子和电机驱动仿真的利器&#xff0c;开关器件模型准&#xff0c;仿真速度快&#xff0c;画起主功率拓扑来那叫一个顺手。…...

【计算机毕业设计】基于Springboot的工作流程管理系统设计与实现+万字文档

博主介绍&#xff1a;✌全网粉丝3W,csdn特邀作者、CSDN新星计划导师、Java领域优质创作者,掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行前辈交流✌ 技术范围&#xff1a;SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、…...

打破学术壁垒:PDFMathTranslate如何让你的英文论文“说“中文?

打破学术壁垒&#xff1a;PDFMathTranslate如何让你的英文论文"说"中文&#xff1f; 【免费下载链接】PDFMathTranslate PDF scientific paper translation with preserved formats - 基于 AI 完整保留排版的 PDF 文档全文双语翻译&#xff0c;支持 Google/DeepL/Oll…...

终极跨平台KVM解决方案:3分钟掌握Input Leap键盘鼠标共享

终极跨平台KVM解决方案&#xff1a;3分钟掌握Input Leap键盘鼠标共享 【免费下载链接】input-leap Open-source KVM software 项目地址: https://gitcode.com/gh_mirrors/in/input-leap 还在为多台电脑设备间频繁切换键盘鼠标而烦恼吗&#xff1f;Input Leap跨平台KVM软…...