一、现有资源:

1、阿里云centOS6.5服务器;

2、安装tomcat8.0+JDK;

3、两个不同maven项目的war包,项目名分别为cloud、am;

4、两个域名http://www.lureed.top/ 、 http://www.horace.space/,且已经成功解析到同一个IP。

二、简单方法

在服务器不同目录下解压两个tomcat用不同的端口号,比如一个是8080,另一个是8088;IP就分别是:

​http://www.lureed.top:8080/​

​http://www.horace.space:8088/​

但是这种IP太丑了,不管是自己用,还是推广给客户都是很low的,所以不推荐这种方法。

三、实用方法

1、Tomcat去除项目名称和端口号,直接使用ip地址访问项目


2、将tomcat下的webapps文件复制一份到同一目录下如下图所示为webapps2

tomcat实现多域名解析到同一公网IP,访问不带端口号(多域名,多应用,同端口)_xml

3、修改sever.xml配置文件

先将<Engine>标签下的<Host>标签复制一份到<Engine>标签下,然后修改如下

<Engine name="Catalina" defaultHost="localhost">

<Realm className="org.apache.catalina.realm.LockOutRealm">
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase"/>
</Realm>

<Host name="www.lureed.top" appBase="webapps"
unpackWARs="true" autoDeploy="true"
xmlValidatinotallow="false" xmlNamespaceAware="false">
<Context path="" docBase="cloud" debug="0"/>
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log" suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />

</Host>
<Host name="www.horace.space" appBase="webapps2"
unpackWARs="true" autoDeploy="true"
xmlValidatinotallow="false" xmlNamespaceAware="false">
<Context path="" docBase="am" debug="0"/>
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log" suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />

</Host>
</Engine>

对host标签进行一些解释

I、name="www.horace.space",name为域名

II、appBase="webapps2",appBase为项目war包存放目录。tomcat默认为webapps.

III、<Context path="" docBase="am" debug="0"/>,Context标签中的docBase为目录下存放的项目名

这三点必须修改,缺一不可。

webapps2目录如下图:

tomcat实现多域名解析到同一公网IP,访问不带端口号(多域名,多应用,同端口)_tomcat_02