• tomcat学习:tomcat部署多个项目:不修改端口和修改端口 两种方式详解


    前言

    1. 很久没有用到tomcat了,因老师需求是springboot项目,打包后是war包,并且部署了多个接口和项目,所以打算系统整理一下,有些地方也借鉴了其他博文,在此表示感谢。
    2. 一个tomcat下如何部署多个项目?Linux跟windows系统下的步骤都差不多,以下linux系统下部署为例。windows系统下部署同理。

    方式一:不修改端口,部署多个项目

    清楚tomcat目录结构的应该都知道,项目包是放在webapps目录下的,那能否在同一个tomcat的webapps目录下运行多个不同项目呢?答案是可以的。

    1. 将多个项目包放入 webapps 文件夹下
    2. 修改 conf/server.xml 文件,新增web应用节点
      定位到 server.xml 文件结束标签之前,新增 web 应用节点 Context ,一个节点代表一个项目
      
              <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="erp" path="/erp" reloadble="true" />
              <Context docBase="ningmengban" path="/ningmengban" reloadble="true" />
            Host>
          Engine>
        Service>
      Server>
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      • 11
      • 12
      • 13
      • 14
    3. 以上新增Contet内容说明:
    • docBase属性: 指定Web应用的文件路径,可以是绝对路径,也可以给定相对路径
    • path属性: 指定访问该Web应用的URL入口
    • reloadable属性: 若这个属性为true,tomcat服务器在运行状态下会监视WEB-INF/classesWEB-INF/lib目录下class文件的改动,如果监测到class文件被更新,服务器会自动重新加载Web应用。
    • 注意:每个项目本身的一些配置文件修改,例如数据库连接信息配置,请自行配置好,这里不做赘述。
      另外,以上第2步server.xml中新增节点不是必须的,可以直接进入第4步,也ok。
    1. 重启tomcat,浏览器输入访问项目地址
      注意:以开发提供的项目部署文档说明中地址为准,去进行访问测试;
      浏览器访问第一个项目地址:ip:8080/ningmengban/app/register/regiseter.html,成功
      浏览器访问第二个项目地址:ip:8080/erp/regist,成功

    方式二:修改端口,部署多个项目

    我们已经清楚一个webapps下面可多个项目。另外一种思路则是,可否多个webapps,每个webapps下面运行一个项目?答案也是可以的。

    1. tomcat目下复制 webapps 目录,并重命名为 webapps1
      Tomcat下webapps已经部署了一个项目,复制webapps重命名为webapps1,并在该文件夹下删除第一个项目,放第二个项目

    2. 修改tomcat的 conf/server.xml 文件,设置端口等信息
      1)server.xml已有第一个项目的配置信息,现在需要新增第二个项目的配置,在Server节点下,新增Service节点;第2个Service节点复制第1个Service内容
      2)复制后,做如下端口等配置修改

      
      
      <Service name="Catalina1">
      
        
        <Connector 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" />
      
          Host>
        Engine>
      Service>
      
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      • 11
      • 12
      • 13
      • 14
      • 15
      • 16
      • 17
      • 18
      • 19
      • 20
      • 21
      • 22
      • 23
      • 24
      • 25
      • 26
      • 27
      • 28
      • 29
      • 30
      • 31
      • 32
    3. 以上修改信息说明:

      • Service的name属性修改为Catelina1
      • http协议访问的Connector port属性修改为8081
      • AJP协议访问的Connector port属性修改为8010
      • Engine的name属性修改为Catelina1
      • Host的appBase属性修改为webapps1
    4. 重启tomcat,浏览器输入访问项目地址
      浏览器访问第一个项目地址:ip:8080/ningmengban/app/register/regiseter.html,成功
      浏览器访问第二个项目地址:ip:8081/erp/regist,成功

  • 相关阅读:
    Docker安装MySQL8.0报错记录
    javaScript(js)手写原生任务定时器源码
    了解结构体在编程中的应用与用法
    使用express连接MySQL数据库编写基础的增、删、改、查、分页等接口
    2018架构真题&案例(四十九)
    Go日志组件Zap的基本使用
    【毕业设计】基于 STM32 的自动泊车系统 -智能小车 - 物联网单片机
    自定义SpringBoot启动图标
    Nacos注册中心8-Server端(处理注册请求)
    YYGH-13-客服中心
  • 原文地址:https://blog.csdn.net/qq_40036754/article/details/127783014