近日自己结合 vue + element ui + Springboot 做了个前后端分离的项目。因为是第一次部署项目,便在此记录下自己的心得。
方式一:前后端分开部署
- 拥有自己的服务器,这个是前提。下面我以 CentOS 为例
- 安装宝塔:
yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh
- 注意:安装完成后要记住登录宝塔的域名和账号密码
- 安装推荐的:nginx 服务器,tomcat8(自带 jdk),mysql8.0 必需
- 添加网站,域名就是自己的 ip
- 打包 vue 工程
npm run build(报错就换源,用 cnpm)的 vue 里的 dist 文件,
注意:将里面请求地址的 local host 改成服务器 ip
- 在添加网站的根目录上次生成的 dist 下的文件
- 在宝塔中创建数据库名字要与项目中配置的数据源对应,比如我的就是 mallvue
- 导入数据库脚本文件,权限最好仅本地服务器访问
- 打包 Springboot 项目
- 用 maven 的 package 打包,
- 注意:此时需要将连接数据库源的 url 中 localhost 换成服务器的 ip
- 数据库名和密码换成 宝塔建立的数据库 mallvue 填入的信息
- 在 target 里面可以找到打包的 jar 包
- 使用 xhsell6 连接 Linux 服务器,确保安装了 Xftp6 传输文件
- 在 root 根目录新建文件夹:mkdir mall_vue,并将打包的 jar 包传输到此文件夹
- 在 mall_vue 里输入命令:nohup java -jar xxxxxx.jar &
- 至此访问自己 ip 就可以访问项目:
方式二:一起部署
- 将 vue 工程生成的 dist 文件下的内容放在 springboot 项目的resources 的 static文件夹下
- pom 文件中引入
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-config</artifactId>
</dependency>
/**
* @author Blue
* @date 2020/3/18
**/
@Configuration
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Override
public void configure(WebSecurity web) throws Exception {
web.ignoring().antMatchers("/login", "/img/**","/fonts/**", "/css/**", "/index.html", "/favicon.ico");
}
}
- 然后再 package 项目
- 再传到服务器对应文件夹,输入 nohup Java -jar xxxxxx.jar &
- 访问ip:端口号/index.html
- 控制台中有消息,比如Using generated security password: 76dade1c-f190-44f8-915c-7a6b6917fb9a【每次随机生成的密码】
- 将用户名 user 和 密码 76dade1c-f190-44f8-915c-7a6b6917fb9a 填入上面对话框中,点击按钮Sign in
在 linux 系统下运行 jar 包的命令如下
- java -jar xxxxx.jar // 当前 ssh 窗口被锁定,可按 CTRL + C 打断程序运行,或直接关闭窗口,程序退出
- java -jar xxxxx.jar & //当前 ssh 窗口不被锁定,但是当窗口关闭时,程序中止运行。
- nohup java -jar xxxxxx.jar & //意思是不挂断运行命令,当账户退出或终端关闭时,程序仍然运行
- nohup java -jar xxxxxx.jar >aa.log //指定输出日志文件,意思是不挂断运行命令,当账户退出或终端关闭时,程序仍然运行
如果想要关闭java进程,输入命令行
- 列出后台进程
ps -ef | grep java
- 杀死进程
kill -9 xxxx
(xxxx为上条命令列出的后台进程的pid, -9 表示无条件终止)