关于部署:SpringBoot-Angular前后端分离项目部署更新实录

8次阅读

共计 1269 个字符,预计需要花费 4 分钟才能阅读完成。

零、前言

第一次给零碎上线,尽管团队内曾经有其他同学写过部署文档 https://segmentfault.com/a/11…,但本文中咱们须要补充一些细节,使操作更简便

本文次要是补充内容,所以假如服务器上曾经部署了运行环境、数据库和 nginx。

一、连贯服务器

咱们通常应用 SSH 连贯 Linux 服务器,应用 scp 命令在本地和服务器之间传输文件。
那么有没有更不便的办法呢?答案是有的。
能够借助 SFTP 工具,来实现图形化传输文件,就像在本人电脑操作上一样。

Windows -> WinSCP

官网地址:https://winscp.net/eng/index.php
这个工具能够与服务器建设 SSH 连贯,并且图形化浏览服务器上的文件,并反对拖拽。

MacOS -> Termius

官网地址:https://www.termius.com/
与 WinSCP 性能雷同,既能管理文件,也能执行 Bash 命令。
并且 Termius 反对 MacOS、Linux、Windows、Android,网上能找到谐和版本。

有了这种可视化 SFTP 工具后,拷贝文件就不须要再用命令行了。

二、编译我的项目

Angular:

// 编译 Angular 我的项目
ng build

而后就能够生成 dist 文件夹,angular 代码全副编译成了原生 JavaScript 代码。
稍后须要用到 dist 中的所有文件

SpringBoot:

// 编译 SpringBoot 我的项目
mvn clean package

咱们只须要用到 target 中的 appName.jar 这个文件。

须要留神的是,编译过程会把包含配置文件在内的所有文件封装,这意味着编译后就不能随便更改端口号、数据库等各种配置信息,因而在编译前,须要把各个参数调整至与生产环境统一。

三、复制文件

关上 SFTP 工具,找到原来的代码地位。
为了稳当起见,不要间接删除上个版本的代码,而是将它们重命名(万一出错了还能复原)。
而后间接把文件夹拽过来即可。

四、敞开历史我的项目的过程,启动新过程

Angular

因为前端应用的 HTML 三件套、服务器是 Apache 或 Nginx 负责,当服务器上的代码文件变更时,一刷新就能加载新的代码,所以不须要重启服务。

SpringBoot

但 Java 我的项目一旦运行,是不能自动检测变更的,所以必须重启这个 Java 过程。

// 查看端口占用状况
sockstat -4l | grep 后端的端口号

// 举例
sockstat -4l | grep 8093

// 返回值(本例中,2279 为过程号)// log    java       2279  26 tcp46  *:8080                *:*

//  敞开过程
sudo kill 过程号

// 举例
sudo kill 2279

再次查看端口占用,曾经没有过程占用此端口了。

此时才能够在我的项目根目录输出

// 在服务器后盾运行 jar 包,不会随着终端退出而进行运行
nohup java -jar test.jar

运行胜利后,控制台不会输入任何信息。
但在 jar 包的同级目录会有一个 nohup.out 文件,之前在终端上看到的那些日志信息改为写入到这个文件中,只须要查看此文件就能晓得我的项目是否启动胜利了。

正文完
 0