介绍
介绍
今天福哥来给大家讲解一下关于Tomcat服务器的虚拟主机的配置方法,前面福哥有一篇《Tomcat学习笔记》专门介绍Tomcat的知识的文章。不过,文章里面针对Tomcat的虚拟主机的部分介绍的不够详细,只有server.xml配置文件里面的各种的标签的用途的基本介绍,而这些标签怎么使用?在各种情况下如何组合?搭配之后的效果是怎么样?我们还不知道。
所以,福哥今天就通过一个一个的示例,让童鞋们对于Tomcat的虚拟主机的配置有一个详尽的认识。
示例
一个端口一个主机
首先我们先来一个单端口、单主机的配置,这是大部分情况的服务器环境的配置方式。
<!-- 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>
一个端口多个主机
接下来我们配置一个单端口、多主机的配置,很多平台会采用这样的配置方式,一个平台会包括很多单独的项目,包括: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>
多个端口多个主机
再来我们配置一个有着多端口、多主机的的配置,这种配置适用于大型的平台的情况,它的非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>
多个虚拟目录
最后我们学习一下如何在主机里面配置虚拟目录,这种配置适用于一个大型平台部署在一个域名下面的情况,多个模块通过虚拟目录的方式部署在根主机下面。
<!-- 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
总结
福哥今天带着大家学习了在Tomcat服务器里进行虚拟主机和虚拟目录的配置的技巧,给出了很多配置的案例的配置代码,基本可以满足你的所有情况了。
5. P.S.
微信公众号的文章发出去之后是不能编辑的,但是福哥偶尔会修复一些描述不到位、示例不正确、结构不清晰等等的文章错误,这些只能在网站上才能看到最新版本内容,望大家知晓~~