环境
- 一个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
下。
按上面配置后,正常情况就可以访问了。