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常用属性

  1. down属性 如果该属性标识服务器,则nginx永远不会访问该设备.
  2. 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;
	}

2. 远程链接工具

  1. 下载工具
    在这里插入图片描述
    2).新建用户 新建之后需要输入密码防止丢失.
    在这里插入图片描述
  2. 动态链接
    在这里插入图片描述
  3. 远程链接效果
    在这里插入图片描述

3. SpringBoot加载机制

3.1 开箱即用

SpringBoot官网已经将主流的框架进行整合.用户使用时无需多余的配置 拿来就用.既开箱即用

3.2 pom.xml文件

SpringBoot 中pom.xml文件 只是添加了jar包文件的依赖. 存储到项目中,需要被其他程序调用才能生效.

SpringBoot中常见启动项(依赖):
1.spring-boot-starter-web
2.spring-boot-starter-text
3.spring-boot-starter-jdbc
4.spring-boot-starter-aop

3.3 @SpringBootApplication注解说明

说明: SpringBoot程序启动的实质 注解开始工作.

3.3.1 注解的结构

  1. 元注解 标识注解的注解
  2. 配置类
  3. 自动配置
  4. 包扫描机制

3.3.2 启动项执行过程

在这里插入图片描述

3.3.3 SpringBoot主启动类加载过程

在这里插入图片描述

GitHub 加速计划 / li / linux-dash
10.39 K
1.2 K
下载
A beautiful web dashboard for Linux
最近提交(Master分支:2 个月前 )
186a802e added ecosystem file for PM2 4 年前
5def40a3 Add host customization support for the NodeJS version 4 年前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐