Tomcat 部署项目访问方式处理及部署多个项目
tomcat 部署 web 项目,将打好的war包,放到 webapps 目录下
启动tomcat ,会自动解压
1、省略端口号,通过项目名访问
修改 server.xml
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
将 port 修改成 80
即可通过 localhost/myProject 访问
2、省略项目名访问系统
找到 <host> 标签
增加如下配置<Context docBase="项目路径" path="/" reloadable="true">
<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" /> <Context docBase="..\webapps\myProject" path="/" reloadable="true" /> </Host>
注意:使用方式二部署项目,当tomcat 启动时,项目会加载两次才能启动成功:
出现该问题的原因:
Tomcat启动时,先加载appBase中配置的webapps目录下的项目,然后再去加载docBase中配置的项目,因为docBase的相对路径(/xxx
)是在webapps目录下,所以会被加载两次
可以使用如下方式解决
在与webapps 的同级目录下,新建一个文件夹(project),专门用来放置项目文件(myProject),然后再进行如下配置
<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" /> <Context docBase="..\project\myProject" path="/" reloadable="true" /> </Host>
3、tomcat下部署多个项目方式一:webapps 下部署多个项目
找到 <host> 标签
增加多个<Context>配置标签
<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" /> <Context docBase="..\project\myProject1" path="/myProject1" reloadable="true" /> <Context docBase="..\project\myProject2" path="/myProject2" reloadable="true" /> </Host>
4、tomcat下部署多个项目方式二: 布置多个webapps
(1):tomcat目下复制webapps目录,并重命名为webapps1,放置另一个项目
(2):在 server.xml 文件中,找到Server节点,新增Service节点;第2个Service节点复制第1个Service内容
(3):
Service的name属性修改为Catelina1;
http协议访问的Connector port属性修改为8081;
AJP协议访问的Connector port属性修改为8010;
Engine的name属性修改为Catelina1;
Host的appBase属性修改为webapps1;
<Service name="Catalina"> <Connector executor="tomcatThreadPool" port="8081" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" /> <Connector port="8010" protocol="AJP/1.3" redirectPort="8443" /> <Engine name="Catalina1" defaultHost="localhost"> <Realm className="org.apache.catalina.realm.LockOutRealm"> <Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/> </Realm> <Host name="localhost" appBase="webapps1" 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 docBase="..\project\myProject1" path="/wyProject1" reloadable="true" /> </Host> </Engine> </Service>