【20201103】Tomcat虚拟主机配置的案例大全
1. 介绍
1.1 介绍
今天福哥来给大家讲解一下关于Tomcat服务器的虚拟主机的配置方法,前面福哥有一篇《Tomcat学习笔记》专门介绍Tomcat的知识的文章。不过,文章里面针对Tomcat的虚拟主机的部分介绍的不够详细,只有server.xml配置文件里面的各种的标签的用途的基本介绍,而这些标签怎么使用?在各种情况下如何组合?搭配之后的效果是怎么样?我们还不知道。
所以,福哥今天就通过一个一个的示例,让童鞋们对于Tomcat的虚拟主机的配置有一个详尽的认识。
2. 示例
2.1 一个端口一个主机
首先我们先来一个单端口、单主机的配置,这是大部分情况的服务器环境的配置方式。
<!--
one port one host
-->
<Service name="service1">
<Connector port="8081" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
<Engine name="engine1" defaultHost="localhost">
<Host name="localhost" appBase="onePortOneHost"
unpackWARs="true" autoDeploy="true">
</Host>
</Engine>
</Service>
2.2 一个端口多个主机
接下来我们配置一个单端口、多主机的配置,很多平台会采用这样的配置方式,一个平台会包括很多单独的项目,包括:www(门户)、news(资讯)、bbs(论坛)等等。
<!--
one port multi host
-->
<Service name="service2">
<Connector port="8082" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
<Engine name="engine1" defaultHost="localhost">
<Host name="localhost" appBase="onePortMultiHost"
unpackWARs="true" autoDeploy="true">
</Host>
<Host name="host1.tongfu.net" appBase="onePortMultiHost1"
unpackWARs="true" autoDeploy="true">
</Host>
<Host name="host2.tongfu.net" appBase="onePortMultiHost2"
unpackWARs="true" autoDeploy="true">
</Host>
</Engine>
</Service>
2.3 多个端口多个主机
再来我们配置一个有着多端口、多主机的的配置,这种配置适用于大型的平台的情况,它的非80端口主机一般情况下是用来搭建内部使用的接口服务。
<!--
multi port multi host
-->
<Service name="service5">
<Connector port="8085" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
<Engine name="engine1" defaultHost="localhost">
<Host name="localhost" appBase="multiPortMultiHost8085"
unpackWARs="true" autoDeploy="true">
</Host>
</Engine>
</Service>
<Service name="service6">
<Connector port="8086" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
<Engine name="engine1" defaultHost="localhost">
<Host name="localhost" appBase="multiPortMultiHost8086"
unpackWARs="true" autoDeploy="true">
</Host>
</Engine>
</Service>
2.4 多个虚拟目录
最后我们学习一下如何在主机里面配置虚拟目录,这种配置适用于一个大型平台部署在一个域名下面的情况,多个模块通过虚拟目录的方式部署在根主机下面。
<!--
multi context
-->
<Service name="service8">
<Connector port="8088" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
<Engine name="engine1" defaultHost="localhost">
<Host name="localhost" appBase=""
unpackWARs="true" autoDeploy="true">
<Context path="" docBase="oneHostMultiContext" privileged="true">
</Context>
<Context path="/context1" docBase="oneHostMultiContext1" privileged="true">
</Context>
<Context path="/context2" docBase="oneHostMultiContext2" privileged="true">
</Context>
</Host>
</Engine>
</Service>
path设置为“空”就是指向主机根目录
path参数不能以“/”结尾
docBase参数实际上是“appBase”+“docBase”的组合。如果Context在Tomcat根目录的话,那么appBase就需要留空。
每个Context都会受Host的设置影响,包括:unpackWARs、autoDeploy
3. 总结
福哥今天带着大家学习了在Tomcat服务器里进行虚拟主机和虚拟目录的配置的技巧,给出了很多配置的案例的配置代码,基本可以满足你的所有情况了。
4. 5. P.S.
免费看文章,自己学技术
文章知识老旧?文章内容看不懂?文章不清晰?点击“阅读原文”查看最新内容