tomcat关于虚拟路径配置深入思考

一、 tomcat虚拟路径

很多朋友都会很疑惑,既然我们都知道在Tomcat服务器上部署项目只要将项目打包,然后放到webapps目录下就可以了,为什么还需要配置虚拟路径?的确,把项目放到webapps目录下非常方便,至少在部署一个项目时,直接把项目扔到webapps目录下所进行的操作会比设置虚拟路径容易的多。但是如果考虑到长久性的操作以及多个项目呢?
设置虚拟路径的优势有如下三点:

  • 第一、我们开发一个项目,在未定版之前需要进行无数次的修改,如果部署测试项目的时候直接将项目打成war包放到webapps目录下,那么每一次版本变更都需要将新的版本放到webapps目录下覆盖原先的版本,这样对于我们测试项目来说是不是非常麻烦呢?如果建立一个虚拟路径,直接映射到项目原件,这样一来在测试阶段是不是非常的方便?(当然这点对于使用集成开发环境工具的开发者来说可以忽略);
  • 第二、Tomcat是一个服务器,既然是一个服务器是不是就有容量这么一说呢?虽然这个容量是你说了算,但是再怎么大是不是也有盘符容量限制?如果将所有的项目都部署到webapps目录下,当项目比较大而且项目较多的时候是不是需要考虑一下盘符的感受呢?所以使用虚拟路径也可以为搭载Tomcat服务器的盘符分压!
  • 第三:多个应用需要有不同的域名访问,也就是下面讲的tomcat多域名配置。

方法一:修改server.xml文件

在server.xml中找到Host标签,在里面添加

<Context path="test1" docBase="D:/apache-tomcat-8.0.33-92/webapps/test1" debug="0" reloadable="true" crossContext="true" />**重点内容**

说明:
• path:指定访问该 Web 应用的 URL 入口。
• docBase:指定 Web 应用的文件路径,可以给定绝对路径,也可以给定相对于的appBase 属性(一般是webapps)的相对路径,如果 Web 应用采用开放目录结构,则指定 Web 应用的根目录,如果 Web 应用是个 war 文件,则指定 war 文件的路径。(指定项目所在地址)
• reloadable: 当reloadable=true时,相关文件改变,Tomcat先停止web app并释放内存,然后重新加载web app。这样以来可以省去手工部署web app工程的时间。和开发工具一起使用可以稍微提高点工作效率。
• crossContext:如果想在应用内调用 ServletContext.getContext()来返回在该虚拟主机上运行的其他 web application 的 request dispatcher,设为 true。在安全性很重要的环境中设为 false,使得 getContext()总是返回 null。缺省值为 false。
• Debug:与这个 Engine 关联的 Logger 记录的调试信息的详细程度。数字越大,输出越详细。如果没有指定,缺省为 0。
此方法需要重启tomcat。

方法二、添加配置文件

在Tomcat根目录下的/conf/Catalina/localhost/路径下新建一个x.xml,并在该xml中添加语句

<Context docBase="D:/apache-tomcat-8.0.33-92/webapps/test1" />

即可创建虚拟站点,虚拟站点名为x。注意docbase指向你自己的应用程序目录,各参数参见方法一中的标签的参数(注意此文件名将作为Context中的path属性值,不管文件里的path属性值如何设置也是无效的)。
此方法不需要重启tomcat

二、tomcat多域名配置

1、首先在windows系统host文件(path:C/windows/system32/driver/etc)中添加如下配置,因为此处是本地测试,如果是真正的生产环境,多个域名解析成同一个服务器ip即可。

127.0.0.1 www.test1.com
127.0.0.1 www.test2.com
127.0.0.1 www.test3.com`

2、在tomcat目录下新建如下图所示几个目录,在每个目录中新建一个index.html文件,文件中分别写test1,test2,test3。
这里写图片描述这里写图片描述

3、在server.xml文件中增加如下代码

<Host name="www.test1.com" appBase="webapps/" autoDeploy="true" unpackWARs="true">
	<Context path="" docBase="D:/apache-tomcat-8.0.33-92/webapps/test1" debug="0" reloadable="true"/>
</Host>
<Host name="www.test2.com" appBase="webapps" autoDeploy="true" unpackWARs="true">
	<Context path="" docBase="D:/apache-tomcat-8.0.33-92/webapps/test2" debug="0" reloadable="true"/>
</Host>
<Host name="www.test3.com" appBase="webapps" autoDeploy="true" unpackWARs="true">
	<Context path="" docBase="D:/apache-tomcat-8.0.33-92/webapps/test3" debug="0" reloadable="true"/>
</Host>

4、启动tomcat运行结果如下:

这里写图片描述     这里写图片描述    这里写图片描述

  • 8
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

东心十

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值