关键词
spring-boot
gradle
腾讯云
tomcat
nginx
vue
前后端分离
代理
前言
因为种种原因,把后端部署在 tomcat,前端项目部署在 nginx。
Tomcat
tomcat 的运行没什么说的,将项目打包为 war,放在 webapps 下,启动 tomcat 会自动解压 war 包。
spring-boot 项目打 war 包部署到外部容器见文章末。
比如 etob.war ,放在 webapps 下,运行后 webapps 下会有一个 war 包解包后的 etob/ 文件夹,此时如果没有修改配置文件,我们可以通过 公网ip:8080/etob 访问我们的项目。
默认运行在 8080 端口,可以在 conf/server.xml 里修改端口。
当然,想要通过 ip:8080 直接访问项目,而不是通过 id:port/project_name 来访问的话,也可以进行配置。
流程
一
终端下 ssh 上传本地文件服务器。
scp 本地文件地址 [email protected]:/服务器存放文件的文件夹`
部署(一)
直接放 webapp 下,./start.sh 即可。会自动解压 war 包,不过这样一个 tomcat 只能部署一个项目。
###部署(二)
删除原 webapps/ROOT 目录下的所有文件,修改文件 conf/server.xml,在Host节点下增加如下Context的内容配置:
xmlValidation="false" xmlNamespaceAware="false">
......
注意:
1)path 的值设置为空;
2)应用不要放到 tomcat 的 webapps 目录下(如上述配置是放到自定义的文件夹 myapps 内的),否则访问时路径会有问题;
3)docBase 指定到绝对路径。
如配置此设置后重启 tomcat,如果 docBase 指向的是 war 文件,则会自动将 war 解压到 webapps/ROOT 目录;如果 docBase 指向的是应用已解压好的目录,如 docBase=”C:/apache-tomcat-6.0.32/myapps/bc” ,则tomcat不会生成 webapps/ROOT 目录(这种情况下,这样就可以不用删除 webapps/ROOT 目录,但 webapps/ROOT 目录内的内容是无法访问的),访问时将直接使用docBase指定的目录。
部署(三)
与方法二类似,但不是修改全局配置文件 conf/server.xml,而是在 conf/Catalina/localhost 目录下增加新的文件 ROOT.xml (注意大小写),文件内容如下:1
2<?xml version='1.