前言
平时在工作中一直都是在使用别人搭建好的环境开发,有的时候也会对项目部署感到好奇,亦或者环境出现问题的时候由于对此不太了解导致一脸懵,于是尝试自己完整的部署一个简单的项目,顺便总结记录一下。
环境准备
服务器:阿里云服务器(用虚拟机也可以)
操作系统:centos8
部署规划
需要准备三台服务器,通过nginx反向代理,根据负载均衡把请求转发到部署后端项目的服务器。
服务器1:部署nginx,前端项目,mysql,redis
服务器2:部署后端项目
服务器3:部署后端项目
下载代码
作者提供了几种项目,我选择的是RuoYi-Vue,前端是vue,后端是springboot。
前端
在本机或者服务器安装node.js都可以,用来编译vue。
安装依赖
设置为国内的镜像源,安装速度会更快。
npm config set registry https://registry.npm.taobao.org
然后执行
npm install
编译
npm run build:prod
编译完成后会出现一个dist目录
部署
压缩dist目录
上传压缩包到服务器1中的/home/vue目录下(放到哪个目录可以自己定),我用的是xftp工具上传,可以直接拖拽。
在当前目录下解压
后端
nginx
修改nginx配置文件,添加如下内容
upstream ruoyi {
server 服务器2ip:8080 weight=10;
server 服务器3ip:8080 weight=5;
}
server {
listen 80;
server_name 服务器1ip;
location / {
root /home/vue/dist;
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://ruoyi/;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
启动nginx服务
mysql
修改配置文件中的ip,用户名,密码
执行sql脚本
redis
修改redis服务器ip
打包项目
先clean,再package
打包成功后,找到ruoyi-admin工程下的target,上传jar包到服务器1跟服务器2的/home/prj目录下(上传的目录可以自己定)。
启动服务
在服务器1跟服务器2的/home/prj目录下执行
nohup java -jar ruoyi-admin.jar &
验证
访问登录页面
登录成功