Nginx【反向代理负载均衡动静分离】--中

news2024/11/23 22:22:25

Nginx【反向代理负载均衡动静分离】–中

负载均衡-配置实例

示意图

在这里插入图片描述

负载均衡配置-思路分析/图解

示意图

在这里插入图片描述

负载均衡配置规则

负载均衡就是将负载分摊到不同的服务单元,既保证服务的可用性,又保证响应足够快

linux 下有Nginx、LVS、Haproxy 等等服务可以提供负载均衡服务,

Nginx 提供了几种分配方式(策略):

轮询(默认)

​ 每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down 掉,能自动剔除

weight

weight 代表权,重默认为1,权重越高被分配的客户端越多指定轮询几率,weight 和访问比率成正比,用于后端服务器性能不均的情况。例如

upstream wyxservers{
	server 192.168.12.134:8080 weight=1;
	server 192.168.12.134:8081 weight=2;
}

ip_hash

每个请求按访问ip 的hash 结果分配,这样每个访客固定访问一个后端服务器,可以解决session 的问题。例如:

upstream wyxservers{
        ip_hash;
        server 192.168.12.134:8081;
        server 192.168.12.134:8080;
}

fair(第三方)

按后端服务器的响应时间来分配请求,响应时间短的优先分配

upstream wyxservers{
        server 192.168.12.134:8080;
        server 192.168.12.134:8081;
        fair;
}

实现步骤

修改C:\Windows\System32\drivers\etc\hosts 配置虚拟主机名

192.168.12.134 www.自己的.com
192.168.12.134 www.自己的mall.com
192.168.12.134 www.自己的crm.com

修改安装目录\nginx.conf

在这里插入图片描述

在这里插入图片描述

在Linux 的Tomcat8080 创建webapps\search\look.html

<h1>tomcat 8080 search.... </h1>

在Linux 下重新安装一份Tomcat, 并将端口修改成8081

  1. 修改tomcat 的conf\server.xml , 注意要修改如下位置,否则该Tomcat 是不能正常工作.

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

  1. 细节说明:不同版本的tomcat 修改的端口还不一样, 灵活处理即可,一定要认真,否则后面测试失败,你排除错误会花费很长时间,让你搞到怀疑人生

在Linux 的Tomcat8081

创建webapps\search\look.html

<h1>tomcat 8081 search.... </h1>

linux 防火墙打开80 端口, 保证外网可以访问

完成测试

启动Linux 下两个Tomcat

1、查看启动的端口, 确保有8080 和8081 端口在监听(提示: 如果tomcat 没有监听对应端口, 说明启动失败了, 可以尝试先执行shutdown.sh 再执行startup.sh 解决)
在这里插入图片描述

在这里插入图片描述

2、在linux 下可以正常访问到两个页面
在这里插入图片描述

在这里插入图片描述

启动或者重新加载Nginx

windows 浏览器输入( 保证浏览器不是无痕上网):http://www.自己crm.com/search/look.html

在这里插入图片描述

注意事项和避免的坑

  1. nginx.conf 的upstream 不能带下划线, 否则会失败, 但是语法检测不到

在这里插入图片描述

  1. 如果你的浏览器是无痕上网, 负载均衡可能失效, 因为Nginx 无法采集到相关信息, 改用其它浏览器即可(比如chrome)

  2. 如果某tomcat 没有监听对应端口, 说明启动失败了, 可以尝试先执行shutdown.sh 再执行startup.sh 解决

文档: Nginx 的upstream 配置技巧

基本介绍

Nginx 是一个反向代理软件,大部分的网站都采用Nginx 作为网站/平台的服务器软件。Nginx 除了可以直接作为web 服务器使用外,

更多的情况是通过反向代理将请求转发给上游服务器配置上游服务器可以使用upstream 进行设置,

通过upstream 可以实现服务的负载均衡规则,可以提高服务器的高可用性。

地址: https://zhuanlan.zhihu.com/p/409693332

动静分离-应用实例

什么是动静分离

  1. Nginx 动静分离简单来说就是把动态跟静态请求分开,可以理解成使用Nginx 处理静态页面/资源,Tomcat 处理动态页面/资源。

  2. 动静分离可以减轻Tomcat 压力,静态请求由Nginx 处理,提供系统整体性能.

  3. 回顾前面-示意图
    在这里插入图片描述

需求说明/图解

在这里插入图片描述

动静配置-思路分析/图解

示意图

在这里插入图片描述

先使用传统方式实现

  1. 创建tomcat\webapps\search\cal.jsp [说明: 为了测试方便, 在tomcat2 也对应创建一份]
 <%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
    <head>
    	<title>hello, jsp</title>
    </head>
    <body>
        <img src="image/cal.jpg"/>
        <h1>JSP, 计算器</h1>
        <%
                int i = 20;
                int j = 70;
                int res = i + j;
                out.println(i + " + " + j + " = " + res);
        %>
    </body>
</html>
  1. 拷贝cal.jpg 到tomcat\webapps\search\image 目录, [说明: 为了测试方便, 在tomcat2 也对应创建一份]

在这里插入图片描述

  1. 浏览器访问http://www.自己crm.com/search/cal.jsp 就可以看到正确页面
    在这里插入图片描述

动静分离优化步骤

修改安装目录\nginx.conf

在这里插入图片描述

在这里插入图片描述

  • 创建/usr/local/nginx/html/search/image 目录, 因为图片路径其实是ip/search/image
  • 将Linux 的两个Tomcat\webapps\search\linux 防火墙打开80 端口, 保证外网可以访问
  • image 目录删除, 在/usr/local/nginx/html/search/image 目录下放入图片

完成测试

启动或者重新加载Nginx

windows 浏览器输入http://www.自己的crm.com/search/cal.jsp

在这里插入图片描述

解读

  1. 这时图片就是从Nginx 直接返回的
  2. 而请求cal.jsp 才转发到对应tomcat 完成10.6.3 如果有css js 文件需要动静分离,按照规则配置即可

在这里插入图片描述

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

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

相关文章

在Apifox中,使用后置脚本显示响应结果reponse中的base64图片

背景 在使用Apifox去请求有图片的接口时&#xff0c;我想要请求成功的同时&#xff0c;可以显示出来图片&#xff0c;这个时候就开始百度找官方文档。最终发现可以使用后置脚本显示reponse中的图片。 方案 如下图所示&#xff0c;接口请求成功后&#xff0c;返回的json结构为…

【Spring Boot 初识丨四】主应用类

上一篇讲了 Spring Boot 的启动器 本篇来讲一讲 主程序类 Main Application Class 及注解 Spring Boot 初识&#xff1a; 【Spring Boot 初识丨一】入门实战 【Spring Boot 初识丨二】maven 【Spring Boot 初识丨三】starter 主程序类 一、定义二、注解2.1 SpringBootApplicati…

秋招指南(菜狗版)-Java前/后端开发方向

期末考试结束&#xff0c;菜的人还在享受假期&#xff0c;即将进大厂的已经在学习了&#xff08;狗头&#xff09; 作为经受去年秋招摧残的老学姐&#xff0c;给大家带来一些秋招学习的小经验&#xff0c;希望可以帮助大家避免一些求职路上的坑&#xff0c;能快速顺利地找到心仪…

论文笔记与实战:对比学习方法MOCO

目录 1. 什么是MOCO2. MOCO是干吗用的3. MOCO的工作原理3.1 一些概念1. 无监督与有监督的区别2. 什么是对比学习3. 动量是什么 3.2 MOCO工作原理1. 字典查找2. 如何构建一个好的字典3. 工作流程 3.3 &#xff08;伪&#xff09;代码分析 4. 其他一些问题5. MOCO v2和MOCO v35.1…

Nginx【反向代理负载均衡动静分离】--下

Nginx【反向代理负载均衡动静分离】–下 Nginx 工作机制&参数设置 master-worker 机制 示意图 图解 一个master 管理多个worker 一说master-worker 机制 ● 争抢机制示意图 图解 一个master Process 管理多个worker process, 也就是说Nginx 采用的是多进程结构, 而…

字节8年经验总结:13 条自动化测试框架设计原则(建议收藏)

1.代码规范 测试框架随着业务推进&#xff0c;必然会涉及代码的二次开发&#xff0c;所以代码编写应符合通用规范&#xff0c;代码命名符合业界标准&#xff0c;并且代码层次清晰。特别在大型项目、多人协作型项目中&#xff0c;如果代码没有良好的规范&#xff0c;那么整个框…

leetcode109. 有序链表转换二叉搜索树(java)

有序链表转换二叉平衡搜索树 leetcode109. 有序链表转换二叉搜索树题目描述 解题思路代码演示链表和二叉树专题 leetcode109. 有序链表转换二叉搜索树 来源&#xff1a;力扣&#xff08;LeetCode&#xff09; 链接&#xff1a;https://leetcode.cn/problems/convert-sorted-lis…

QCameraViewfinder的使用

目录 引言核心代码完整代码 引言 本文是简单使用Qt快速使用摄像头完成截图等工作&#xff0c;主要涉及QCamera、QCameraViewfinder、QCameraImageCapture这三个类。QCamera通过相机的信息创建&#xff0c;用于控制开始接收图形、停止接收图像。QCameraViewfinder则是图像的展示…

(1Gbit)MT28EW01GABA1LPC-0SIT、MT28EW01GABA1HPC-0SIT FLASH - NOR 存储器

MT28EW01GABA1LPC-0SIT、MT28EW01GABA1HPC-0SIT 1Gbit并行NOR闪存器件具有较高的密度、就地执行 (XiP) 性能和架构灵活性&#xff0c;可满足汽车、消费类和移动产品的设计要求。该器件非常适合用于GPS/导航、汽车后视摄像头、手机、智能手机和电子阅读器。该器件还具有较宽的温…

【小沐学Python】Python实现turtle绘画

文章目录 1、简介2、接口说明2.1 海龟动作2.1.1 移动和绘制2.1.2 获取海龟的状态 2.2 画笔控制2.2.1 绘图状态2.2.2 颜色控制2.2.3 填充2.2.4 更多绘图控制 2.3 TurtleScreen/Screen 方法2.3.1 窗口控制2.3.2 使用屏幕事件2.3.3 Screen 专有方法 3、示例测试3.1 Turtle star3.2…

关于proxy的较深入研究

关于proxy的较深入研究 proxy是什么控制台打印proxy&#xff0c;展示一下vue3中的prxoy和es6的proxy有何不同&#xff1f;proxy对js和vue3来说有什么含义&#xff1f;proxy的封装机制 proxy是什么 Proxy是ES6中新增的一个对象&#xff0c;它可以用来代理另一个对象&#xff0c…

微服务eureka和nacos

服务远程调用 /*** 创建RestTemplate并注入Spring容器* return*/Beanpublic RestTemplate restTemplate(){return new RestTemplate();} Autowiredprivate RestTemplate restTemplate;public Order queryOrderById(Long orderId) {// 1.查询订单Order order orderMapper.fin…

关于调试别人的bug中发现的细节问题1:Switch...case...分支,永远只选择第一个分支

1、Switch…case…分支&#xff0c;永远只选择第一个分支&#xff1a; 原因&#xff1a;switch()里面的不是传入的变量&#xff0c;m_curWindowType是个成员变量&#xff0c;一直是初始值。他喵的&#xff0c;不知道谁写的下面的代码&#xff0c;大晚上的我也没有细看&#xff…

13.3寸_Wifi标签功耗电流计算-单面屏幕-1.8V的Flash测试

13.3寸Wifi标签不工作的时候电流的消耗主要来自两部分&#xff1a; 待机时&#xff0c;醒来监听时。经过测量&#xff0c;13.3寸Wifi标签的待机电流是7.13uA , 醒来监听的峰值电流是51.6 mA。13.3寸Wifi标签系统设定每间隔1秒醒来一次监听是否有唤醒数据。充电锂电池电池的容量…

00后跳槽到我们公司拿了25K,“躺平”两个字骗了我好久···

都说00后已经躺平了&#xff0c;但是有一说一&#xff0c;该卷的还是卷。前段时间我们部门就来了个00后&#xff0c;工作都还没两年&#xff0c;跳到我们公司起薪25K&#xff0c;都快接近我了。 后来才知道人家是个卷王&#xff0c;从早干到晚就差搬张床到工位睡觉了。最近和他…

【配置环境】Windows下C/C++第三方库管理工具vcpkg安装和使用

一&#xff0c;vcpkg简介 vcpkg是微软公司开发的一个开源C包管理工具&#xff0c;它可以很方便的帮助您在 Windows、 Linux 和 MacOS 上下载&#xff0c;编译和安装C 第三方库。它具有自动解决依赖关系的能力&#xff0c;并且支持多种目标架构和平台。提供了超过1500个C库的预…

架构师基础篇之如何画架构图C4模型

1. 前言 本文将给大家介绍一种简洁明了软件架构可视化模型——C4模型&#xff0c;并手把手教大家如何使用代码绘制出精美的C4架构图。 阅读本文之后&#xff0c;读者画的架构图将会是这样的&#xff1a; 注&#xff1a;该图例仅作绘图示例使用&#xff0c;不确保其完整性、可…

❤ 关于以太网没有有效的ip配置问题解决方法

❤ 关于以太网没有有效的ip配置问题解决方法 错误提示 解决方法 一&#xff0c;检查IP地址是否为自动获取 1&#xff0c;首先右键任务栏右下角的网络图标点击进入"网络和共享中心",然后点击"更改适配器设置"。 2&#xff0c;在适配器界面右键"本…

异常数据检测 | Python实现孤立森林(IsolationForest)异常数据检测

文章目录 文章概述模型描述源码分享学习小结文章概述 异常数据检测 | Python实现孤立森林(IsolationForest)异常数据检测 模型描述 IsolationFores算法它是一种集成算法(类似于随机森林)主要用于挖掘异常(Anomaly)数据,或者说离群点挖掘,总之是在一大堆数据中,找出与其它数据…

***杨辉三角_yyds_LeetCode_python***

1.题目描述&#xff1a; 给定一个非负整数 numRows&#xff0c;生成「杨辉三角」的前 numRows 行。 在「杨辉三角」中&#xff0c;每个数是它左上方和右上方的数的和。 示例 1: 输入: numRows 5 输出: [[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]] 示例 2: 输入: numRows …