前提在虚拟机上安装mysql ,tomcat,jdk,redis,nginx等环境
三台虚拟机:
0:作为前端
1和2后端代码
使用若依项目作为测试项目,版本是2.3.0
修改项目的数据库地址,标红处是虚拟机地址,替换上自己的虚拟机地址,可以在虚拟机上使用 ipconfig 命令查看
在数据库中创建连接自己虚拟机地址的数据库,创建一个ry-vue数据库(与自己上面的配置一致)
将项目中的数据库文件导入 ,导入完成数据库会自动创建一些表
修改自己的redis配置为虚拟机地址,配置自己的密码
修改日志配置,日志输出位置为自己的地址,在encoder下增加字符集配置,所有的都要加,防止乱码
配置完成,启动查看是否报错
本地没问题,将项目上传到虚拟机,用Xshell连接,直接使用rz命令即可,前端上传到0,后端上传到1和2
进入前端项目,执行npm install --unsafe-perm --registry=https://registry.npm.taobao.org,安装一些前端依赖
解释:使用npm,因此要安装node.js,unsafe-perm防止权限问题,镜像源使用淘宝
执行打包命令:npm run build:prod
前端打包完成,会生成一个dist目录
打包后端代码,使用maven打包,进入项目目录下(两个都要打包)
打jar包:
执行:mvn package
会在target目录下生成一个jar包,这个jar包直接可执行,保存这个jar包到别的目录,稍后还要打war包,会清除target目录的内容
打war包:
1.更改打包方式
2.剔除内置tomcat,增加如下配置
3.修改项目启动类,在原启动类下加一个类
public class RuoYiServletInitializer extends SpringBootServletInitializer
{
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application)
{
return application.sources(RuoYiApplication.class);
}
}
将代码上传到服务器,重新打包,
执行命令:mvn clean ; mvn package
target下会出现一个war包 。
进入前端代码的服务器,修改nginx配置,最好修改最上面的用户为 user root;
下面这个修改是你自己刚才打包的dist目录
保存修改,启动nginx, 进入sbin下执行 ./nginx
执行完成以后前台页面部署完成,可以通过输入虚拟机地址直接访问
注意:访问不了,十有八九是防火墙未关闭,
防火墙状态:systemctl status firewalld
防火墙关闭:systemctl stop firewalld
或者使用开放端口的方式,可以搜搜别的博客
部署后端:
启动jar包的方式:
nohup java -jar ruoyi.jar & //nohub是指采用后台运行的方式
启动完成依然不能访问因为前后端未交互
继续配置nginx文件,请求头必须配置,配置转发路径和负载均衡
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/;
}
upstream ruoyi{
server 192.168.209.6:8080 weight=5;
server 192.168.209.131:8080 weight=3;
}
注意:根据请求配置的location,
启动war包的方式:
将打包的war包放入tomcat的webapps目录下
然后直接启动tomcat
命令:service start tomcat
如果不行 ,可以直接进入tomcat安装目录下的bin目录下执行 ./startup.sh
前台访问出错,由于war包默认的根目录访问不是我们的项目,需要配置一下
在1和2服务器上的tomcat目录下config目录下的server.xml
增加如下内容,为了访问根目录可以访问我们的项目
<Context path="/" docBase="/usr/local/tomcat/apache-tomcat-8.5.55/webapps/ruoyi" reloadable="false"></Context>
修改完,需要重新启动tomcat
此时访问可以检查是否集群部署成功,直接通过配置的日志,进行请求,可以看到日志是在两台后台服务上打印
结束!!!