环境
一个tomcat,下面部署了多个项目
有一个独立的IP
有多个(二级)域名指向不同的项目。
DNS配置
DNS没什么特殊的要求,配置都指向这一个IP就行。
Tomcat配置
多域名有可能存在多种配置方式,我使用了一种(文件结构)看着比较麻烦的方式。
Connector的配置方式基本都一样:
<Connector port='80' protocol='HTTP/1.1'
URIEncoding='UTF-8'
connectionTimeout='20000'
redirectPort='8443' />
首先端口都是80,一般还会带上URIEncoding='UTF-8'防止乱码。
下面就是多域名的配置方式:
<Engine name='Catalina' defaultHost='www.mybatis.tk'>
<Host name='www.mybatis.tk' appBase='webapps'
unpackWARs='true' autoDeploy='true'>
</Host>
<Host name='www.cndocs.tk' appBase='docapps'
unpackWARs='true' autoDeploy='true'>
</Host>
<Host name='mbg.cndocs.tk' appBase='mbg'
unpackWARs='true' autoDeploy='true'>
</Host>
<Host name='spring.cndocs.tk' appBase='spring'
unpackWARs='true' autoDeploy='true'>
</Host>
</Engine>
先看行的defaultHost='www.mybatis.tk',这个配置的意思是,当通过IP地址访问的时候,使用的那个域名host(和下面具体的Host的name一致)。
下面的(和二级)域名配置都一样:
<Host name='www.mybatis.tk'
appBase='webapps' unpackWARs='true' autoDeploy='true'>
</Host>
这里需要注意的是appBase,这里指向的是tomcat目录下的webapps目录,默认指向该目录下的ROOT。所以这个配置实际上就相当于webapps/ROOT。
上面完整配置中的其他几个docapps,mbg,spring也都是直接在tomcat下面的目录(和webapps是平级目录),都有ROOT目录,部署的项目也都直接在ROOT下。
按上面配置后,正常情况就可以访问了。
上面配置的网站就是下面这几个网址↓