今天闲着没事,捣鼓一下 Tomcat 虚拟主机,还挺有意思,来跟大家分享一下我的实践过程。
配置虚拟主机
我有点懵,不知道从哪下手。后来想想,还是得从 Tomcat 的配置文件开始。于是我打开 Tomcat 安装目录下的 conf 文件夹,找到 * 这个文件。
打开 * 文件后,我发现里面密密麻麻的都是代码,看得我头大。不过我还是硬着头皮找到 <Engine>
标签,因为我听说虚拟主机配置跟这个标签有关。
在 <Engine>
标签里面,我看到一个 <Host>
标签,它的 name 属性是 "localhost",appBase 属性是 "webapps"。我想,这应该就是 Tomcat 默认的虚拟主机配置。
为配置一个新的虚拟主机,我依葫芦画瓢,又加一个 <Host>
标签,并给它设置不同的 name 和 appBase 属性。比如,我把 name 设置成 "mytest",把 appBase 设置成 "mytestweb"(这个目录是我事先在 Tomcat 安装目录下创建的)。
这里我简单贴一下我的配置,大概就是这个样子:
<Engine name="Catalina" defaultHost="localhost">
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true">

</Host>
<Host name="mytest" appBase="mytestweb" unpackWARs="true" autoDeploy="true">
</Host>
</Engine>
部署项目
配置好虚拟主机后,我就开始部署我的项目。我把我的项目打包成一个 WAR 文件,然后放到我刚刚创建的 "mytestweb" 目录下。
测试访问
项目部署完成后,我迫不及待地想看看效果。我在浏览器地址栏输入 "mytest:8080",结果,我的项目成功运行起来!
然后我又试试原来的"localhost:8080"保证他也能正常运行,结果当然是没问题。
折腾hosts文件(可选)
- 如果你跟进一步的折腾,计算你现在有两个项目部分别部署在webapps,mytestweb中,对应的虚拟主机配置分别是localhost,mytest
- 那么你可以修改 C:/Windows/System32/drivers/etc/hosts (以Windows为例,其他操作系统hosts路径可能有所不同)
- 在一行添加: 127.0.0.1 mytest。
- 重启浏览器,在浏览器地址栏输入 "mytest:8080"和"localhost:8080" 就可以访问到不同的项目。
总结
配置 Tomcat 虚拟主机并不难,只要找到 * 文件,然后在里面添加几个 <Host>
标签,再把项目部署到对应的目录下就可以。如果你想通过不同的域名访问不同的项目,还需要修改 hosts 文件。经过这回实践,我对 Tomcat 的虚拟主机配置有更深入的解,以后再也不怕多项目部署的问题!