tomcat学习二: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 ,一个节点代表一个项目

    <!-- Access log processes all example.
                 Documentation at: /docs/config/valve.html
                 Note: The pattern used is equivalent to using pattern="common" -->
            <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
                   prefix="localhost_access_log" suffix=".txt"
                   pattern="%h %l %u %t "%r" %s %b" />
    
            <!-- 配置web应用 --> 
            <Context docBase="erp" path="/erp" reloadble="true" />
            <Context docBase="ningmengban" path="/ningmengban" reloadble="true" />
          </Host>
        </Engine>
      </Service>
    </Server>
    
    AI 代码解读
  3. 以上新增Contet内容说明:

    • docBase属性: 指定Web应用的文件路径,可以是绝对路径,也可以给定相对路径
    • path属性: 指定访问该Web应用的URL入口
    • reloadable属性: 若这个属性为true,tomcat服务器在运行状态下会监视WEB-INF/classesWEB-INF/lib目录下class文件的改动,如果监测到class文件被更新,服务器会自动重新加载Web应用。
    • 注意:每个项目本身的一些配置文件修改,例如数据库连接信息配置,请自行配置好,这里不做赘述。
      另外,以上第2步server.xml中新增节点不是必须的,可以直接进入第4步,也ok。
  4. 重启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)复制后,做如下端口等配置修改

    <!-- 第二个项目配置 -->
    <!-- 修改第一处: Catalina 改为 Catalina1-->
    <Service name="Catalina1">
    
      <!-- 修改第二处: 8080为http访问端口,为避免冲突,修改端口-->
      <Connector port="8081" protocol="HTTP/1.1"
                 connectionTimeout="20000"
                 redirectPort="8443" />
    
      <!-- 修改第三处: 8009为AJP端口,Apache能通过AJP协议访问Tomcat的8009端口,避免冲突,修改-->
      <Connector port="8010" protocol="AJP/1.3" redirectPort="8443" />
    
      <!-- 修改第四处: Engine节点,name修改为Catalina1-->
      <Engine name="Catalina1" defaultHost="localhost">
    
        <Realm className="org.apache.catalina.realm.LockOutRealm">
          <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
                 resourceName="UserDatabase"/>
        </Realm>
    
        <!-- 修改第五处: 修改Host节点,appBase修改为webapps1(自定义命名)-->
        <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>
    
    AI 代码解读
  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,成功
目录
打赏
0
1
1
0
51
分享
相关文章
用的到linux-tomcat端口占用排查-Day5
通过本文的介绍,详细讲解了在CentOS 8系统上排查和解决Tomcat端口占用问题的方法。从使用 `netstat`、`lsof`和 `ss`命令检查端口占用情况,到使用 `ps`和 `top`命令查找和停止占用端口的进程,再到修改Tomcat端口配置,最后介绍了自动化脚本的方法。希望本文能帮助系统管理员和开发者有效地解决端口占用问题,确保Tomcat服务器的正常运行。
36 11
java spring 项目若依框架启动失败,启动不了服务提示端口8080占用escription: Web server failed to start. Port 8080 was already in use. Action: Identify and stop the process that’s listening on port 8080 or configure this application to listen on another port-优雅草卓伊凡解决方案
java spring 项目若依框架启动失败,启动不了服务提示端口8080占用escription: Web server failed to start. Port 8080 was already in use. Action: Identify and stop the process that’s listening on port 8080 or configure this application to listen on another port-优雅草卓伊凡解决方案
93 7
tomcat相关概念与部署tomcat多实例-zabbix监控(docker部署)
通过上述步骤,您可以在Ubuntu系统上成功编译并安装OpenCV 4.8。这种方法不仅使您能够定制OpenCV的功能,还可以优化性能以满足特定需求。确保按照每一步进行操作,以避免常见的编译问题。
69 23
tomcat相关概念与部署tomcat多实例-zabbix监控(docker部署)
通过上述步骤,您可以在Ubuntu系统上成功编译并安装OpenCV 4.8。这种方法不仅使您能够定制OpenCV的功能,还可以优化性能以满足特定需求。确保按照每一步进行操作,以避免常见的编译问题。
65 22
tomcat相关概念与部署tomcat多实例-zabbix监控(docker部署)
通过上述步骤,您可以在Ubuntu系统上成功编译并安装OpenCV 4.8。这种方法不仅使您能够定制OpenCV的功能,还可以优化性能以满足特定需求。确保按照每一步进行操作,以避免常见的编译问题。
81 25
Liunx部署java项目Tomcat、Redis、Mysql教程
本文详细介绍了如何在 Linux 服务器上安装和配置 Tomcat、MySQL 和 Redis,并部署 Java 项目。通过这些步骤,您可以搭建一个高效稳定的 Java 应用运行环境。希望本文能为您在实际操作中提供有价值的参考。
240 26
tomcat学习一:tomcat 目录及配置文件学习 server.xml 等
这篇文章是关于Apache Tomcat服务器的目录结构、配置文件(特别是server.xml)的详细介绍和学习指南。
220 0
tomcat学习一:tomcat 目录及配置文件学习 server.xml 等
云服务器常用端口作用
了解云服务器常用端口的作用有助于高效管理资源、快速定位问题及更好地使用云服务。常见端口包括:21(FTP,文件传输)、22(SSH,远程连接Linux)、25(SMTP,发送邮件)、80(HTTP,网页服务)、110/143(POP3/IMAP,接收邮件)、443(HTTPS,加密网页)、1433(SQL Server)、3306(MySQL)、3389(RDP,远程访问Windows桌面)和8080(代理服务)。
52 2
阿里云国际站:阿里云服务器端口配置
悟空云@CloudWuKong阿里云是全球领先的云计算服务提供商,为用户提供弹性计算、数据库、存储、网络安全等一系列云计算服务。在使用阿里云服务器时,合理配置端口非常重要,可以提高服务器安全性和稳定性。
阿里云服务器开放端口完整图文教程
笔者近期开发完成的服务端程序部署在阿里云的ECS云服务器上面,一些应用程序配置文件需要设置监听的端口(如Tomcat的8080、443端口等),虽然通过CentOs 7系统的的「防火墙」开放了对应的端口号,任然无法访问端口号对应的应用程序,后面了解到原来还需要设置云服务器的「安全组规则」,开放相应的端口权限,服务端的接口才能真正开放。
891 1

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等