前提:前后端分离前后端包都要用war包。
war
添加依赖,并且支持tomcat
org.springframework.boot
spring-boot-starter-tomcat
provided
javax.servlet
javax.servlet-api
3.1.0
provided
org.apache.tomcat
tomcat-servlet-api
9.0.45
provided
org.springframework.boot
spring-boot-starter-web
org.springframework.boot
spring-boot-starter-tomcat
public class CsoftXfdbApp extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(CsoftXfdbApp.class);
}
public static void main(String[] args) {
SpringApplication.run(CsoftXfdbApp.class, args);
}
}
前端在dist文件内
1、新建文件 WEB-INBF
2、进入WEB-INBF创建文件rewrite.config
RewriteRule ^/index\.html$ - [L]
RewriteCond %{REQUEST_PATH} !-f
RewriteRule (.*) /index.html [L]
3、进入 dist,打开 cmd,运行 jar -cvf dist.war * 得到 dist.war
有时候可以不用新建文件,可以自行尝试
1.配置虚拟主机
打开web容器配置里的虚拟主机管理,新增虚拟主机,主机名称没有限制可以用项目名称,主机别名可以设置成服务器ip,方便后面访问,通道列表可以先随便选一个,点击保存按钮添加主机完成。
![在这里插入图片描述](https://img-blog.csdnimg.cn/c10fd1165a1149c3955dda0ab08a76c6.jpeg#pic_center)
2.配置http通道
因为前端后端都要部署要监听两个不同的端口,所以需要新建两个http通道。
(1)后端通道
打开web容器配置里的http通道管理,新增http通道,通道名称可以设置为后端服务的名称,监听端口设置为后端服务的端口号,虚拟主机选择刚新建的虚拟主机,然后点击下一步后面都是默认配置,直接完成配置。
(2)前端通道
打开web容器配置里的http通道管理,新增http通道,通道名称可以设置为前端服务的名称,监听端口设置为前端服务的端口号,重定向是后端端口,虚拟主机选择刚新建的虚拟主机,然后点击下一步后面都是默认配置,直接完成配置。
![前端通道](https://img-blog.csdnimg.cn/31dea799a8254b2f944a358c3593f5b4.png)
3.部署应用
点击应用应用管理菜单,部署前后端应用
(1)后端应用
点击部署应用按钮,部署后端应用,文件选择本地文件,选择后端项目文件路径中的war包,点击开始部署。应用名称设置为后端服务名称,应用前缀修改为“/”,然后点击下一步。
虚拟主机选择我们新建的虚拟主机,点击直接完成,完成部署。
(2)前端应用
点击部署应用按钮,部署前端应用,文件选择本地文件,选择前端项目dist文件夹中的war包,点击开始部署。应用名称设置为前端服务名称,应用前缀修改为“/”,然后点击下一步。
虚拟主机选择我们新建的虚拟主机,点击直接完成,完成部署。
4.访问项目
点击前端应用里的http访问,跳转到前端登录页面,输入用户密码,登录成功则说明应用部署完成。
注意:如果在同一个tongweb上面部署多个项目,spring要配置不同的jmx名称:
jmx:
default-domain: xrqf-qfx-end
JMX即Java Management Extension(Java管理应用扩展),这种机制可以方便的管理、监控正在运行的Java程序。常用于监控管理线程、内存、日志Level、服务重启、系统环境等等。springboot中spring.jmx是默认打开的,要求每个JMX域名字必须是唯一的,当两个服务同时部署在同一个tomcat上时,由于都没有指定JMX的域名称,所以会启动报错。