1
HuasLeung 2019-04-28 15:38:19 +08:00 via Android
tomcat 配置 2 个虚拟主机分别对应 webapp1 和 webapp2(ip:port 中的端口是不是同一个?)
传统的 war 包部署应该做不到同步更新覆盖。如果配置了.war 文件在 tomcat 运行就自解压,war 包的文件名是个问题——新上传的 war 包如果跟旧的 war 包同名解压后应该会冲突(没试过…),不同名则需重新修改 server.xml 中虚拟主机 appBase 对应的路径 |
2
funky 2019-04-28 15:39:56 +08:00
war 应该实现不了热更新吧
|
3
Newyorkcity OP @HuasLeung 是同一个..我是在 conf/server.xml 文件里这么写的
<Context docBase="webapp1.war" path="" reloadable="true" debug="0"/> <Context docBase="webapp2.war" path="/webapp2" reloadable="true" debug="0"/> webapp1 会自动生成 webapp1 文件夹,但不能通过 ip:port 的方式访问,只能通过 ip:port/webapp1 的方式访问..我也很气.. |
4
Newyorkcity OP |
5
funky 2019-04-28 16:19:10 +08:00 1
在前面有一个 nginx 后面两个 tomcat 实例,滚动重启
|
6
funky 2019-04-28 16:20:20 +08:00
webapp1 换成 ROOT 可以 ip:port 直接访问
|
7
LinJunzhu 2019-04-28 16:53:11 +08:00 1
@Newyorkcity
<Host name="xx.cn" appBase="webapps1" unpackWARs="true" autoDeploy="true"> <Context path="" docBase="/home/ubuntu/projects/webapps1.war" reloadable="true"/> </Host> <Host name="xx.cn" appBase="webapps2" unpackWARs="true" autoDeploy="true"> <Context path="/hello" docBase="/home/ubuntu/projects/webapps2.war" reloadable="true"/> </Host> 如果想要每次 war 更新都自动热部署, 那么需要写脚本了: 上传 war 包,并且将 webapps1 webapps2 文件夹下自动解压出的项目移除 ,tomcat 会自动去解压热更新的 |