最近需要在一台独立IP服务器上使用tomcat,配置多个域名分别访问不同项目。折腾了下总结出了以下几点:
1.首先配置子域名
我使用的是腾讯云的域名解析,在需要配置的顶级域名下面,添加如下A记录:
我这里配置二级域名 mgms.iq99.cn,记录类型为A,表示将该域名指向我的个人服务器119.29.83.38。所以这里不管配置多少个二级域名都可以指向一台服务器。如果服务器自己不做处理,那么该二级域名默认访问的就是http://119.29.83.38:80/
2.配置tomcat
对于服务器而言,我们已经有多个二级域名指过来了,现在要根据不同的项目分配不同的二级域名。修改conf/server.xml:
先看第一行的defaultHost="www.webank.pw",这个配置的意思是,当通过IP地址访问的时候,使用的那个域名host(和下面具体的Host的name一致)
代码语言:javascript复制<Engine name="Catalina" defaultHost="www.webank.pw">
这里需要注意的是appBase,这里指向的是tomcat目录下的webapps目录,默认指向该目录下的ROOT。所以这个配置实际上就相当于webapps/ROOT。
代码语言:javascript复制 <Host name="www.webank.pw" appBase="webapps"
unpackWARs="true" autoDeploy="true">
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log." suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
<Context path="" docBase="Blog" />
<Context path="/upload/photo" docBase="/data/Blog/upload/photo" />
</Host>
子项目都部署在webapps路径下面,新的项目mgms-core也是的。添加配置:
代码语言:javascript复制 <Host name="mgms.iq99.cn" appBase="webapps"
unpackWARs="true" autoDeploy="true">
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log." suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
<Context path="" docBase="mgms-core" />
</Host>
搞定:
访问域名: www.iq99.cn 或者 www.webank.pw 都可以