nginx负载均衡+反向代理

news2024/12/25 9:27:28

最近业务上遇到一个需求,其它系统因业务校验需要调用上级系统进行数据发送或校验,如果上级系统停机维护,其它下级系统发送的http通讯会丢失,还要一次次补发数据,耗费人工与时间。使用nginx+反向代理解决了部分需求。
目标:当服务A停机维护,其它系统会调用服务B进行http通讯。
在这里插入图片描述

加入代理配置,上级系统配置nginx.conf文件。

worker_processes  1;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;

    sendfile        on;
    keepalive_timeout  65;
	
	
	upstream linuxidc { 
	    ip_hash;
        server 127.0.0.1:7080 weight=3; 
        server 127.0.0.1:7081 weight=2; 
	}
	server {
        listen  8812;
        server_name localhost;
        location /{
            proxy_pass http://linuxidc/;
            rewrite ^/api$ /$1 break;
            client_max_body_size 300M;
        }
    }
    
}

踩坑点:记得加上proxy_pass 最后这个“/”,特此注意。

proxy_pass http://linuxidc/;

upstream设备上的状态设置

1、weight:默认为1.weight越大,负载的权重就越大。
2、ip_hash:nginx中的ip_hash技术能够将某个ip的请求定向到同一台后端,这样一来这个ip下的某个客户端和某个后端就能建立起稳固的session,一个服务挂掉,需重新登录获取session。
因此ip_hash是有缺陷的,不能在一些情况下使用:
2-1、 nginx不是最前端的服务器。ip_hash要求nginx一定是最前端的服务器,否则nginx得不到正确ip,就不能根据ip作hash。譬如使用的是squid为最前端,那么nginx取ip时只能得到squid的服务器ip地址。
2-2、nginx的后端还有其它方式的负载均衡。假如nginx后端又有其它负载均衡,将请求又通过另外的方式分流了,那么某个客户端的请求不能定位到同一台session应用服务器上。

未解决的问题

以上只是处理了,一个服务挂掉,另外一个服务继续接收通讯,并没有负载每次请求,且没有处理session或token共享问题。咨询了一下大佬,解决这个问题登录的时候需要把session或token放入redis,每次去调用接口,带着session或token一起请求,这样每次的请求会负载到不同的服务中。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/622636.html

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

相关文章

【Java项目】从0到1完成Nacos配置文件扩展和共享

文章目录 环境配置配置文件名称空间和组扩展配置共享配置文件配置文件优先级 使用nacos作用配置中心的好处在于我们可以在云端上修改配置文件之后,使得本地的配置重新生效,从而做到不用重启项目也可以加载新的配置。 环境配置 首先引入依赖,…

【基础知识整理】图的基本概念 邻接矩阵 邻接表

一、图概述 定义: 图(graph)是由一些点(vertex)和这些点之间的连线(edge)所组成的; 其中,点通常被成为"顶点(vertex)“,而点与点之间的连线则被成为"边或弧”(edege)。 通常记为,G(V,E)。 图是一种重要的…

ANR中为什么会出现堆栈漂移

前言 我们排查ANR问题的时候,会发现有时候anr文件中捕获的堆栈信息,并不准确,而且经常会打印下面这样的堆栈: "main" prio5 tid1 Native| group"main" sCount1 ucsCount0 flags1 obj0x71ac6f78 self0xb4000…

java+mysql校园外卖订餐管理系统servlet

3.1 课题目的 对于客户而言,外卖订单管理系统最好是越方便操作,越简单越好。客户对于外卖订单系统,对他的首要要求就是能够安全,顺利的完成订单。但是很多时候开发人员更在意一些创新的模式,去增加用户的体验感或增值服…

关于变邻域搜索求解柔性作业车间问题的探讨

邻域结构交换内部关键块的操作 譬如,某案例的内部关键块为501—601—502—701,部分OS加工顺序码如下(标注的黄色底纹:为内部关键块) 在移动内部关键快操作时,请教各位是否是如下的变换: ① 块尾701 移至 块内工序50…

vs Git 本地服务器仓库配置

1、安装Git程序 Git 下载地址一https://git-scm.com/download/winGit 下载地址二We bring the awesome Git VCS to Windowshttps://gitforwindows.org/ 2、新建本地服务端仓库 2.1、新建文件夹,并创建仓库 在本地新建文件夹://本地服务器仓库 在服务…

Vue+SpringBoot打造电子元器件管理系统(附源码文档)

作者主页:Designer 小郑 作者简介:Java全栈软件工程师一枚,来自浙江宁波,负责开发管理公司OA项目,专注软件前后端开发、系统定制、远程技术指导。CSDN学院、蓝桥云课认证讲师,全栈领域优质创作者。 一、摘要…

SSRS rdlc报表 七 安装及配置报表服务

开发环境 vs2022 sqlserver 2019 参考文档:安装 SQL Server Reporting Services - SQL Server Reporting Services (SSRS) | Microsoft Learn 配置 URL (Configuration Manager) - SQL Server Reporting Services (SSRS) | Microsoft Learn 如果你在安装数据库的…

基于html+css的图展示114

准备项目 项目开发工具 Visual Studio Code 1.44.2 版本: 1.44.2 提交: ff915844119ce9485abfe8aa9076ec76b5300ddd 日期: 2020-04-16T16:36:23.138Z Electron: 7.1.11 Chrome: 78.0.3904.130 Node.js: 12.8.1 V8: 7.8.279.23-electron.0 OS: Windows_NT x64 10.0.19044 项目…

chatgpt赋能python:Python与Kafka的对接方法介绍

Python与Kafka的对接方法介绍 Kafka作为一种高吞吐量的分布式消息系统,近年来在数据处理、大数据分析以及实时流计算等领域得到了广泛的应用,成为了数据处理和分析领域中的标配。而Python作为一种简单易学、功能强大的编程语言,也因其在数据…

学习WooCommerce跨境电商社交媒体营销

WooCommerce 长期以来一直为电子商务店主提供多样化的服务。大约 500 万家商店啓用安装了免费的 WooCommerce 插件。 官方 WooCommerce 插件从 WordPress.org 下载了161,908,802次,并且还在增加。 超过5,106,506 个网站正在使用 WooCommerce。 本文网址: https…

pytorch相关报错【报错】

AttributeError: cannot assign module before Module.init() call 原因:自定义类中缺少supre()函数 解决 KeyError: tensor(1) 报错原因:tensor不能作为字典的键 解决:转化为numpy x torch.tensor([1,2,3]) y {1:1,2:2,3:3} z [y[i]…

提交arxiv的格式调整与流程

提交arxiv的格式调整与流程 进入arxiv网站(注册或登录): https://arxiv.org/ 点击发布submission 上传本地资源,完成以下步骤: 许可证一般需要选: 这个表示最小的利益冲突,因为我们最后肯定希望publi…

如何在项目中优雅的抛出异常,这些知识佬们还记得嘛

前言: 本篇文章主要讲解Java中的几种异常关键字和异常类相关知识。该专栏比较适合刚入坑Java的小白以及准备秋招的大佬阅读。 如果文章有什么需要改进的地方欢迎大佬提出,对大佬有帮助希望可以支持下哦~ 小威在此先感谢各位小伙伴儿了😁 以…

lua编程——air724二次开发之点亮led教程

一.硬件 硬件型号:银尔达 Core-Air724模块; 杜邦线若干; micro Usb线; USB转TTL工具; 杜邦线用于电源(12V/1A)和TTL信号连接,micro Usb用于下载和调试。 硬件资源,如下图: 二.软件 u…

❤️最详细的Python学习路线-图文不废话

当谈论学习Python编程时,有许多不同的途径和资源可供选择。为了帮助你建立起一个学习Python的有效路线,下面是一个包含基本步骤和关键资源的建议。请注意,这只是一个指南,你可以根据自己的兴趣和学习风格进行调整。 ❝ 以下时间不…

推荐对象转换解决方案:MapStruct

1、什么是MapStruct 1.1 JavaBean 的困扰 对于代码中 JavaBean之间的转换, 一直是困扰我很久的事情。在开发的时候我看到业务代码之间有很多的 JavaBean 之间的相互转化, 非常的影响观感,却又不得不存在。我后来想的一个办法就是通过反射&a…

Django新手必看:从入门到精通Web应用开发①【文末送书三本】

Django新手必看:从入门到精通Web应用开发① 1. Django是什么1.2 Django的由来1.3 Django的命名1.4 Django的版本发布1.5 Django框架的特点 2 Django的设计模式2.1 MVC设计模式2.2 MTV设计模式 3 Django安装与配置3.1 Python支持版本:3.2 Django 3.2与4.1…

Filter设计模式,责任链模式一如既往的妙

场景1: 每种Filter进行某种处理,将各个Filter连在一起形成一个FilterChain。当需要往FilterChain中加入新的Filter,或者改变各个Filter的处理顺序时,可以方便的扩展。 1个接口: public interface Filter {public Str…

前端技术搭建拼图小游戏(内含源码)

The sand accumulates to form a pagoda ✨ 写在前面✨ 功能介绍✨ 页面搭建✨ 样式设置✨ 逻辑部分 ✨ 写在前面 上周我们实通过前端基础实现了俄罗斯方块游戏,今天还是继续按照我们原定的节奏来带领大家完成一个拼图游戏,功能也比较简单简单&#xff…