项目发布流程 集群部署 负载均衡 高可用

1. Nginx反向代理

1.1 代理分析

1.1.1 需求分析

前端服务器:
1.现在访问前端http://localhost:8080 访问前端项目 借助于tomcat服务器.但是在生产环境中前端项目都是静态资源文件.
2. 如果项目需要发布.则需要编译项目
后端项目: http://localhost:8091 负责为前端项目提供数据支持. 需要通过域名的方式访问后端服务器.

1.2 前端项目发布

1.2.1 修改请求路径

业务说明: 前后端需要通过域名的方式进行数据的交互.
后端网址: http://manage.jt.com

1.修改main.js:
在这里插入图片描述
2.修改AddItem.vue 修改文件上传的路径
在这里插入图片描述
3.检查前端网址是否正常
在这里插入图片描述

1.1.2 前端项目编译

说明: 前端项目发布 实质就是将脚手架中多余的解构进行优化,将有价值的信息打包压缩生成静态资源文件,被用户访问.
在这里插入图片描述
编译后的文件如图:
说明:程序在编译之后生成dist文件目录,其中包含了整合后太管理系统
在这里插入图片描述

1.1.3 前端项目发布

需求: 用户要求通过 http://web.jt.com的域名访问dist目录中的index.html文件.

1.复制dist目录到nginx根目录中 如图
在这里插入图片描述
2.编辑反向代理配置文件

#配置前端
	server {
		listen 80;
		server_name web.jt.com;
		location / {
			root  dist;
			index index.html;
		}
	}

1.1.4 修改hosts文件

说明: 在hosts文件目录中 添加前后端域名控制.

127.0.0.1       localhost
::1             localhost
#图片服务器域名
127.0.0.1       image.jt.com
#前端域名地址
127.0.0.1       web.jt.com
#后端域名地址
127.0.0.1       manage.jt.com

1.1.5 前端效果展现

在这里插入图片描述

1.2 后端项目发布

1.2.1 业务需求

要求: 用户通过 http://manage.jt.com 访问http://localhost:8091服务器.

1.2.2 编辑nginx配置

#配置后端服务器.
	server {
		listen 80;
		server_name manage.jt.com;
		location / {
			#代理的是一个请求网址
			proxy_pass  http://localhost:8091;
		}
	}

1.2.3 后端域名测试

通过域名: http://manage.jt.com/rights/getRightsList 是否正常.
在这里插入图片描述

1.2.4 前后端测试

通过前端域名访问.检查前后端是否正常.
在这里插入图片描述

1.3 项目部署流程图

在这里插入图片描述

1.4 集群部署准备

1.4.1 集群概念

说明: 由多台服务器组成的一个物理结构. 这些服务器可以提供相同的服务. 把这样的结构称之为集群
在这里插入图片描述

1.4.2 动态获取端口号

说明: 在集群中有多台tomcat服务器,用户每次访问都会只访问其中1台. 应该如何选择.这时应该采用负载均衡算法. 所以编辑如下方式动态获取端口号.验证负载均衡算法实用性.

@RestController
@CrossOrigin
public class PortController {

    @Value("${server.port}")
    private Integer port;
    /**
     * 动态获取端口号
     */
    @GetMapping("/getPort")
    public String getPort(){
        return "动态获取端口号:"+port;
    }
}

1.4.3 后端项目发布准备

说明: 一般开发完成之后,需要将项目打成 xxx.jar/xxx.war(java/html)
策略: 分别将项目打包 端口号分别为 8091/8092
打包方式: 利用maven工具的 install指令.
在这里插入图片描述
打包结果: 准备2个jar包文件
在这里插入图片描述

1.4.4 项目发布

JDK检查:
在这里插入图片描述
java中如果要运行xxxx.jar的文件
命令: java -jar xxxxx.jar
在这里插入图片描述

1.4.5 项目调试

分别启动8091/8092 测试项目发布是否正常
在这里插入图片描述

1.5 Nginx实现集群负载均衡

1.5.1 需求说明

要求用户通过http://manage.jt.com 访问8091/8092服务器. 并且实现负载均衡的效果.

1.5.1 轮询机制

规则说明: 根据配置文件的顺序依次访问.

#准备集群
	#负载均衡策略:  1.轮询机制
	upstream tomcats {
		server 127.0.0.1:8091;
		server 127.0.0.1:8092;
	}
	
	
	#配置后端服务器.
	server {
		listen 80;
		server_name manage.jt.com;
		location / {
			#代理的是一个请求网址
			#proxy_pass  http://localhost:8091;
			proxy_pass  http://tomcats;
		}
	}

1.5.2 权重机制

关键字: weight= 阿拉伯数字
用法: 根据服务器性能实现动态的分配.
在这里插入图片描述

1.5.3 IPHASH策略

规则: 如果需要用户与服务器进行绑定 则采用IPHASH方式.
在这里插入图片描述

1.5.4 IPHash算法

要素: IP地址 端口号
算法: hash(ip:端口)%2 余数 0或者1
在这里插入图片描述

1.6 nginx实现tomcat高可用

1.6.1 高可用(HA)说明

如果发现服务器宕机,则程序可以自动化的实现故障的迁移.无需人为干预.

1.6.2 Nginx策略

根据配置文件的顺序,依次访问服务器.如果访问的服务器超时,则自动的切换下一台服务器.
弊端: 如果宕机的服务器不做配置,则会频繁的访问故障机. 默认规则
在这里插入图片描述

1.6.3 Nginx常用属性

down属性 如果该属性标识服务器,则nginx永远不会访问该设备.
backup属性 设定备用机 正常情况下 该设备不提供服务. 如果其他的设备宕机/遇忙时 才会访问备用机

1.6.4 项目如何在线部署

需求: 在不影响用户使用的条件下 如何将项目升级!!!
步骤:

  1. 将需要升级的服务器 在nginx中标识为down属性.
  2. 重启nginx服务器
  3. 将新的jar包文件部署到服务器中.
  4. 进行软件调试. 如果测试无误.修改nginx down属性进行切换.

1.6.5 Nginx 高可用实现方案

说明: 如果服务器宕机 通过down属性进行标识,则需要人为的干预,这样的方式效率低. 最好的方式由程序自动完成.
属性说明:

  1. max_fails=1 设定访问失败的最大次数
  2. fail_timeout=60s; 设定失败的超时时间,在超时时间范围内不会再次访问故障机.
#准备集群
	#负载均衡策略:  1.轮询机制  2.权重方式  3.IPHASH
	upstream tomcats {
		#ip_hash;
		server 127.0.0.1:8091 max_fails=1 fail_timeout=60s;
		server 127.0.0.1:8092 max_fails=1 fail_timeout=60s;
	}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值