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


    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;
    }
    
    • 1
    • 2
    • 3
    • 4
    ip_hash

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

    upstream wyxservers{
            ip_hash;
            server 192.168.12.134:8081;
            server 192.168.12.134:8080;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5

    fair(第三方)

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

    upstream wyxservers{
            server 192.168.12.134:8080;
            server 192.168.12.134:8081;
            fair;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5

    实现步骤

    修改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

    tomcat 8080 search....

    • 1

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

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

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

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

    在Linux 的Tomcat8081

    创建webapps\search\look.html

    <h1>tomcat 8081 search.... h1>
    
    • 1

    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" %>
    
        
        	hello, jsp
        
        
            
            

    JSP, 计算器

    <% int i = 20; int j = 70; int res = i + j; out.println(i + " + " + j + " = " + res); %>
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    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 文件需要动静分离,按照规则配置即可

    在这里插入图片描述

  • 相关阅读:
    javascript-基础知识
    大学生个人博客网页设计模板 学生个人博客网页成品 简单个人网站作品下载 静态HTML CSS个人网页作业源代码
    Qt开发之串口通信(三)
    遇到这些题你知道用什么来解么?
    pytorch与深度学习
    【Java SE】继承
    如何用Claude 3 Sonnet Artifacts实现对数据文件的可视化分析?
    音视频开发—音频相关概念:数模转换、PCM数据与WAV文件详解
    Java并发 | 02.CPU与内核、并发与并行、上下文切换
    Web3.0 DApp(去中心化应用程序)设计架构
  • 原文地址:https://blog.csdn.net/apple_67445472/article/details/131142686