# 部署图示
# 目录说明
服务器的文件目录说明:
home 目录类似于 window 上的 D 盘
# 存放软件临时安装包(也可以放在root目录下)
# mkdir -p /home/local_hub
# 存放软件环境(也可以安装在默认的/usr/local目录下)
# mkdir -p /data/local_service
# ----------
# 临时存放Git项目代码
mkdir -p /home/app_code
# 存放已部署上线的项目
mkdir -p /data/app
# 1、代码拉取
cd /home/app_code
git clone [email protected]:y_project/RuoYi-Vue.git
# 2、SQL 导入
- 方式 1
在服务器的 mysqld 中操作
mysql -u root -p
> create database ry-vue;
> Show databases;
> use ry-vue;
> source /home/app_code/RuoYi-Vue/quartz.sql;
> show tables;
> source /home/app_code/RuoYi-Vue/ry_20230706.sql;
> show tables;
- 方式 2
使用 Navicat
# 3、后端打包
以下演示的是在服务端进行打包(优点是不需要配置 jdk 为 1.8)
为了项目的正常运行,建议先在本地修改文件配置文件、并运行项目以验证项目是否能够正常运行
本地运行测试
本地 Maven3.8.6、jdk1.8、ip 地址(服务器公网 ip)
# Maven打包
cd /home/app_code/RuoYi-vue
mvn clean install -pl com.ruoyi:ruoyi-admin -am # 为非模块可以直接执行mvn package命令
# jar包迁移
mkdir /data/app/ruoyi-vue
mv /home/app_code/RuoYi-vue/ruoyi-admin/target/ruoyi-admin.jar /data/app/ruoyi-vue/ruoyi-admin.jar
# 启动jar包(&代表后台运行)
cd data/app/ruoyi-vue
nohup java -jar ruoyi.jar &
# 检查是否启动成功
tail -100f nohup.out
# 4、前端打包
# webpack打包
cd /home/app_code/RuoYi-Vue/ruoyi-ui
npm install --unsafe-perm --registry=https://registry.npm.taobao.org
npm run build:prod
# jar包迁移
mkdir /data/app/ruoyi-ui
mv /home/app_code/RuoYi-Vue/ruoyi-ui/dist/* /data/app/ruoyi-ui/
# Nginx代理
vim /usr/local/nginx/conf/nginx.conf
Nginx 配置
user root
http{
# 项目一
server {
listen 80;
server_name localhost;
location / {
root /data/app/ruoyi-ui;
try_files $uri $uri/ /index.html;
index index.html index.htm;
}
location /prod-api/ {
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://localhost:5151/;
}
}
}
# 拓展:偷懒技巧
上面部署的的每一个部署操作都在服务端进行,这样可以极大的放防止部署发生错误。但是我们得在服务器中安装 Maven、node、jdk 环境,并且采用命令的方式上传 SQL,部署效率会大大受到影响。
如果想要最快的方式部署,选择以下方式对前端的部署:
- SQL 数据导入使用 可视化工具(如:Navicat)
- 前后端打包操作在本地进行(但要注意服务器和本地的 Maven、Node 版本差异)
- 前后端项目代码的直接使用或暴露 服务器 ip 地址(这样就不用进行 nginx 代理了)