Linux 前后端分离项目实战部署步骤分享
- github下载源码 clone 到Linux 下
- 修改mysql配置、redis配置、并新建对应的库表(项目包含了对应的sql文件)、logback配置路径和字符集
- 前端服务进行打包
3.1 安装前端依赖:
npm install --unsafe-perm --registry=https://registry.npm.taobao.org
3.2 前端项目编译打包:
npm run build:prod
- 后端服务进行打包
4.1 打jar包
执行命令mvn package
打包
把target目录下的jar包备份到项目下
4.2 打war包
pom修改为<packaging>war</packaging>
添加如下依赖,把内嵌tomcat在发布的时候剔除
<dependency>
<groupId>>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
添加启动类
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application)
{
return application.sources(RuoYiApplication.class);
}
修改完之后maven打war包: mvn package
- 准备好前后端的打包之后开始部署
前端部署:配置nginx
进入nginx 目录修改conf 文件 :
user root;
location / {
root dist目录路径;
index index.html index.html;
}
启动nginx :cd sbin/
./nginx
浏览器访问前端: 服务器ip
后端部署:
jar包部署方式:
进入到jar包目录执行后台启动 : nohup java -jar ruoyi.jar &
配置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://ip:端口;
}
修改配置后重启nginx /usr/local/nginx/sbin/nginx -s reload
重写访问前端!
war包部署方式:
如果jar已经在运行则kill 掉进程
查看进程: ps -aux | grep java
结束进程: kill -9 对应进程id
把war 包放进 tomcat 目录下的webapps
进入webapps目录拷贝war包到当前目录下 :
cp /root/war包目录 ./
启动tomcat :
service tomcat start
注意:此时访问是需要加上/ruoyi 访问的不是根目录
进入tomcat 的 /conf/server.xml文件在host标签下添加
<Context path="/" docBase="/usr/tomcat目录/webapps/ruoyi" reloadbale="false"></Context>
修改后重启tomcat:
service tomcat stop
service tomcat start
浏览器访问根目录!
另外如果需要配集群:
tomcat修改server.xml 同上
nginx 配置 :
upstream ruoyi{
server ip:端口 //配置权重weight = 5
server ip:端口 //配置权重weight = 5
}
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/;
}