SpringBoot+Vue项⽬打包部署
演⽰项⽬是SpringBoot+VUE前后端分离的。需要分别部署前端、后端项⽬,做集的话需要将后端项⽬部署到多台服务器中。
使⽤的技术及服务器:
– Linux系统:Centos7
– 前端:VUE+Nginx
– 后端:SpringBoot+JDK1.8+Redis+Tomcat+MySQL+Maven
部署前的准备⼯作
0.安装环境及相关软件⼯具
1.MySQL中创建数据库、数据表、导⼊初始数据
2.修改项⽬的数据库相关配置(url,username,password等)
3.修改Redis相关配置(host,port,password等)
4.⽇志相关配置(⽇志路径、输出字符集UTF-8等)
前端部署
1.将项⽬源码打包为zip格式(有隐藏⽂件,不打包可能不完整),上传到对应的服务器中指定⽬录下。
#解压⽂件
unzip XXX.zip
2.打包项⽬
进⼊解压后的⽬录
cd XXX/
安装依赖
#使⽤淘宝的镜像源
npm install --unsafe-perm --registry=registry.
打包
npm run build:prod
3.打包完成后,会在当前⽬录下⽣成/dist⽬录
4.配置nginx
到安装的Nginx⽬录下
cd /usr/local/nginx/conf
修改f⽂件
#第⼀处改动
#user  nobody
修改为
user  root # 防⽌权限问题,⽣产上可以根据实际⽤户设置
#第⼆处改动
server {
listen      80;
server_name localhost;
location / {
root  /**/**/***/****/dist;#修改此处⽬录为打包后的/dist
index index.html index.htm;
}
#第三处改动
# /***api/ 表⽰的是转发路径
location /***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 ip:port/; #此处为实际的后端IP和Port
}
}
如果是集配置,则除了上⾯的第⼀处、第⼆处改动外,第三处如下改动
#第⼀处改动
#user  nobody
修改为
user  root # 防⽌权限问题,⽣产上可以根据实际⽤户设置
# 第三处第⼀部分改动
# 配置集
<upstream ruosys{
server ip1:port1 weight=5
server ip2:port2 weight=3
}
#第⼆处改动
server {
listen      80;
server_name localhost;
location / {
root  /**/**/***/****/dist;#修改此处⽬录为打包后的/dist
index index.html index.htm;
}
#第三处第⼆部分改动
# /***api/ 表⽰的是转发路径
location /***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 ruosys/; #此处为指定的集名称
}
}
重新加载配置
/usr/local/nginx/sbin/nginx  -s reload
5.到nginx⽬录下启动nginx即可
cd /usr/local/nginx/sbin/
./nginx
后端部署
1.将项⽬源码打包为zip格式(有隐藏⽂件,不打包可能不完整),上传到对应的服务器中指定⽬录下。
#解压⽂件
unzip XXX.zip
两种打包⽅式:
1.打包项⽬(jar包)
进⼊解压后的⽬录
cd XXX/
打包
mvn package
打包完成后,在当前⽬录下⽣成target⽬录,进⼊该⽬录就可以看到打包完成的jar包
备份打包完成的jar包到上⼀级⽬录
cp ./xxx.jar  ../xxx.jar
执⾏jar包启动项⽬
nohup java -jar xxx.jar &
2.打包项⽬(war包)
在项⽬中修改l
<!--打包⽅式改为war-->
<packaging>war</packaging
<!-- 将SpringBoot⾃带的Tomcat排除 -->
<dependency>
<groupId>org.springframeword.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<scope>provided</scope>
</dependency>
在项⽬启动类的同级⽬录下添加⼀个启动类
import org.springframework.boot.builder.SpringApplicationBuilder;nginx部署前端项目
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
public class SpringBootStartApplication extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
//指向原来的启动类XXX.class
return builder.sources(XXX.class);
}
}
将修改后的⽂件上传到服务器项⽬下对应的⽬录中替换原来⽂件。
到项⽬的⽬录下
执⾏清理(处理之前打jar包⽣成的⽂件)
mvn clean
打包
打包
mvn package
打包完成后,在当前⽬录下⽣成target⽬录,进⼊该⽬录就可以看到打包完成的war包
备份打包完成的war包到上⼀级⽬录
cp ./xxx.jar  ../xxx.war
将war包放置在tomcat的webapps⽬录下
cp ..../xxx.war ./
修改tomcat的配置⽂件l,使tomcat根⽬录指向当前部署的项⽬⽽不是tomcat主页
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true">
#添加下⾯配置,使得访问根⽬录时直接访问项⽬⽽不是tomcat⾸页
<Context path="/" docBase="/usr/local/tomcat/apache-tomcat-8.5.55/webapps/ruosys" reloadable="false" </Context>启动tomcat
service tomcat start

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。