今天新项目上线,需要配置tomcat,但是tomcatwebapps下有多个项目,配置同一个域名访问tomcat下多个项目,当输入域名时总是访问不到需要默认的项目时,百度了一会却没有找到方法,可能是我理解能力比较差吧。自己看了会配置文件找到了问题的原因,在此分享出来。
首先看到tomcat下的server.xml文件默认配置如下:
<Host name="localhost" 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" />
</Host>
现在有两个项目front和admin,我想要输入域名时默认访问到front项目。那么我们将front和admin放到webapps目录下,配置tomca下的server.xml文件如下:
<Host appBase="webapps" autoDeploy="true" name="www.a.com" xmlNamespaceAware="false" unpackWARs="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 docBase="front" path="/" reloadable="true" />
<Context docBase="admin" path="/admin" reloadable="true" />
</Host>
Host的name值为你需要配置的域名,新增加两个Context, docBase指示到项目的实际目录下,path表示项目的根目录,这样当在浏览器中输入:www.a.com时就可以访问到front项目,输入www.a.com/admin就可以访问到admin项目。
我之前一直配的是:
<Context docBase="front" path="/front" reloadable="true" />
<Context docBase="admin" path="/admin" reloadable="true" />
所以输入www.a.com是无法访问到front项目的。照此递推可以增加多个项目。