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 &quot;%r&quot; %s %b" />
             
            <Context docBase="..webappsmyProject" 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 &quot;%r&quot; %s %b" />
             
            <Context docBase="..projectmyProject" 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 &quot;%r&quot; %s %b" />
             
            <Context docBase="..projectmyProject1" path="/myProject1"  reloadable="true" />
            <Context docBase="..projectmyProject2" 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 &quot;%r&quot; %s %b" />
            <Context docBase="..projectmyProject1" path="/wyProject1"  reloadable="true" />
      </Host>
    </Engine>
  </Service>

  

原文地址:https://www.cnblogs.com/wongzzh/p/15095046.html