Tomcat多个Host、默认应用设置及Tomcat启动时应用加载两次问题处理

本文主要讨论tomcat下多host域名设置、默认应用设置,设置默认应用时经常出现的Tomcat启动应用会被加载2次问题处理,如何配置多域名指向同一个WEB项目。文中使用的软件环境为:

   1)pc:mac 10.12.6,jdk:1.8

   2)tomcat:8.0.52,端口号:8080

一、默认应用设置

      假设有一web项目,其项目名称为web-demo,发布到tomcat的webapps下之后,其context为/web-demo,访问http://localhost:8080/web-demo,即可出现该项目的首页。通常我们希望访问http://localhost:8080即可实现web-demo项目的快速访问,为此需要将web-demo设置为默认应用。

1、设置context path="" docBase="web-demo"(不推荐)

修改conf/server.xml

  Tomcat多个Host、默认应用设置及Tomcat启动时应用加载两次问题处理

这种方式可能是大家baidu能见到最多的一种实现方式啦,但是有问题,应用被加载了两次(host一次,context一次,这是tomcat的加载机制)。

对应两个context:

   1)/,系设置context path="" ...所致,即可以访问http://localhost:8080;

   2)/web-demo,系默认加载webapps应用web-demo所致,即访问http://localhost:8080/web-demo也可以;

2、覆盖ROOT应用(推荐)

   webapps目录下,有一个tomcat默认应用ROOT,那么只要web-demo.war解压时可以自动解压到ROOT目录即可实现tomcat去掉项目名称访问,设置如下:

     修改conf/server.xml 

 Tomcat多个Host、默认应用设置及Tomcat启动时应用加载两次问题处理

注意:
        1)webapps目录下,新建wars文件夹,将web-demo.war应用发布到wars文件夹下;
        2)启动tomcat前,先把webapps目录下的ROOT文件夹删除掉,否则不会解压到ROOT目录下;
二、多Host配置,修改conf/server.xml,如下所示
Tomcat多个Host、默认应用设置及Tomcat启动时应用加载两次问题处理
如上所示,在一个tomcat下,配置了2个host主机:
1)host1.duotun.com, 对应webapps目录下的/wars/web-demo应用,并且设置了默认应用,因此访问http://host1. duotun.com:8080即可
2)host2. duotun.com,对应host2目录下的/wars/web-demo,并且设置了默认应用,因此访问http://host2. duotun.com:8080即可
 三、多域名指向同一个web项目,修改conf/server.xml,配置如下

http://host1. duotun.com:8080,http://host2. duotun.com:8080访问的是同一个web应用。
备注:与上述多Host配置区别是多了Alias别名,即映射其它域名,有多个就配置多个Alias。

发表评论

电子邮件地址不会被公开。 必填项已用*标注