Tomcat 映射不同的域名到不同的项目
过去遇到了这种情况:两个人租用同一个服务器,安装了tomcat之后,部署了各自的项目,出现一个问题是:两个人的域名都要映射到同一个ip,那么怎么对应到自己的项目呢?
比如 name1.com name2.com 映射到用一个ip 4.4.4.4,这个IP主机上有两个项目 web1 web2,该怎么做呢?
起初我们想的是,一个项目设置为默认的项目,即:访问name1.com 的时候默认指向项目1,如果访问name2.com的时候,建一个Filter判断request来源,转向web2. 后来没有实施,觉得这两个项目扯到一起了。。。
今天翻书,看到tomcat原来支持这种多个虚拟主机的部署方式,顿时懊恼极了,以前都没注意过这些东西。
方法很简单: 在tomcat下server.xml中,Engine 节点下,可以设置多个host,每一个host对应一个虚拟主机。
例如可以添加<host name="name1.com" appBase="the web1 dir">
和 <host name="name2.com" appBase="the web2 dir">
这样,及时两个域名映射到同一个ip,那么两个域名对应的项目目录是不一样的,也就实现了多域名映射到同一个ip的问题。
另外,如果有其他的域名映射到这个ip,但是没有设置对应的host信息,那么就会打开的是默认的localhost对应的目录,默认是webapps/ROOT路径。
就是这样。