`

利用Tomcat建立多个Web Server的方法

阅读更多
当你使用Tomcat作为Web Server的时候,是不是会想过这样的一个问题:如何利用Tomcat建立多个Web应用 呢?
要实现这一点是很简单的,也有多种方法。(以下说明使用%tomcat_home%代表Tomcat安装目录)。

一.首先介绍一下Tomcat及server.xml.

Tomcat服务器是由一系列的可配置的组件构成,tomcat的组件可以在%tomcat_home%/conf/server.xml文件中进行配置,每个Tomcat组件和server.xml文件的一种配置元素对应.
主要分为4类:
1.顶层类元素:包括<Server>和<Service>,他们位于整个配置文件的顶层.
<Server>元素代表整个Catalina Servlet 容器,由org.apache.catalin.Server接口定义.<Server>包含一个或多个<Service>元素.
<Service>元素由org.apache.catalin.Service 接口定义.<Service>包含一个<Engine>元素,及一个或多个<Connector>元素.多个<Connector>元素共享一个<Engine>元素.
2.连接器类元素
连接器类代表了介于客户与服务之间的通信接口,负责将客户的请求发送给服务器,并将服务器的响应结果传递给客户.
<Connector>元素由org.apache.catalin.Connector 接口定义.代表了与客户程序实际交互的组件,它负责接收客户请求,以及向客户返回响应结果.
3.容器类元素
容器类元素代表处理客户请求并生成响应的组件.包括<Engine> <Host>和<Context>.
<Engine>元素由org.apache.catalin.Engine 接口定义.每个<Service>只能包含一个<Engine>元素,<Engine>元素处理在同一个<Service>中的所有<Connector>元素收到的客户请求.
<Host>元素由org.apache.catalin.Host 接口定义.一个<Engine>元素中可以包含多个<Host>元素.每个<Host>元素定义了一个虚拟主机,她可以包含一个或多个Web 应用.
<Context>元素由org.apache.catalin.Context 接口定义.代表了运行在虚拟主机上的一个Web 应用.一个<Host>元素可以包含多个<Context>元素
4.嵌套类元素
嵌套类元素代表了可以加到容器中的组件,如<Logger> <Realm>和<Value>.

关于server.xml的更多信息,可以参考Tomcat的文档:/webapps/tomcat-docs/config/index.html

样例:
<Server>
<Service name="Catalina">
<Connector acceptCount="100" connectionTimeout="20000" disableUploadTimeout="true" port="8080" redirectPort="8443" maxSpareThreads="75" maxThreads="150" minSpareThreads="25"/>
<Connector port="8009" protocol="AJP/1.3" protocolHandlerClassName="org.apache.jk.server.JkCoyoteHandler" redirectPort="8443"/>
<Engine defaultHost="localhost" name="Catalina">
<Host appBase="webapps" name="localhost">
<Logger className="org.apache.catalina.logger.FileLogger" prefix="localhost_log." suffix=".txt" timestamp="true"/>
</Host>
<Logger className="org.apache.catalina.logger.FileLogger" prefix="catalina_log." suffix=".txt" timestamp="true"/>
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"/>
</Engine>
</Service>
</Server>

二.建立多个Web应用方法:

1.通过配置多个<Context>元素(这是最为普遍的方法)
在<Host>下配置多个<Context>元素
<Context path="app1" docBase="E:/workspace/app1/WebRoot" debug="0" reloadable="true"></Context>
<Context path="app2" docBase="E:/workspace/app2/WebRoot" debug="0" reloadable="true"></Context>
然后通过 主机名:端口/应用名 访问,如: http://localhost:8080/app1 或 http://localhost:8080/app2

2.通过配置多个<Host>元素
在<Engine>下配置多个<Host>元素
<Host appBase="webapps" name="192.168.1.110">
<Context path="" docBase="E:/workspace/app1/WebRoot" debug="0" reloadable="true"></Context>
</Host>
<Host appBase="webapps" name="192.168.1.114">
<Context path="" docBase="E:/workspace/app2/WebRoot" debug="0" reloadable="true"></Context>
</Host>
然后通过 主机名:端口 访问,如: http://192.168.1.110:8080 或 http://192.168.1.114:8080
需要注意的是这样需要机器连接到局域网上.

3.通过配置多个<Service>元素(多端口 多应用)
在<Server>下配置多个<Service>元素
<Service name="Catalina">
<Connector acceptCount="100" connectionTimeout="20000" disableUploadTimeout="true" port="8080" redirectPort="8453" maxSpareThreads="75" maxThreads="150" minSpareThreads="25"/>
<Connector port="8019" protocol="AJP/1.3" protocolHandlerClassName="org.apache.jk.server.JkCoyoteHandler" redirectPort="8453"/>
<Engine defaultHost="localhost" name="Catalina">
<Host appBase="webapps" name="localhost">
<Context path="" docBase="E:/workspace/app1/WebRoot" debug="0" reloadable="true"></Context>
</Host>
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"/>
</Engine>
</Service>
<Service name="Catalina2">
<Connector acceptCount="100" connectionTimeout="20000" disableUploadTimeout="true" port="8090" redirectPort="8453" maxSpareThreads="75" maxThreads="150" minSpareThreads="25"/>
<Connector port="8019" protocol="AJP/1.3" protocolHandlerClassName="org.apache.jk.server.JkCoyoteHandler" redirectPort="8453"/>
<Engine defaultHost="localhost" name="Catalina">
<Host appBase="webapps" name="localhost">
<Context path="" docBase="E:/workspace/app2/WebRoot" debug="0" reloadable="true"></Context>
</Host>
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"/>
</Engine>
</Service>

定义了两个Service分别是Catalina和Catalina2,侦听的端口分别是8080和8090
然后通过 主机名:端口 访问,如: http://localhost:8080 或 http://localhost:8090
分享到:
评论

相关推荐

    Tomcat7部署多个Web项目的方法-有图有真相

    根据提供的文件信息,下面详细介绍在Tomcat7上部署多个Web项目的方法,这些知识点包括了配置文件的编辑、部署路径的管理以及特定开发环境下的项目结构调整。 首先,Tomcat作为一个应用服务器,用于托管Java Web应用...

    一个tomcat配置多个端口运行不同项目

    本教程将深入探讨如何配置Apache Tomcat 8.5.11以支持在一个实例中同时运行多个项目,每个项目绑定到不同的端口,以实现资源的有效利用和管理。 首先,我们需要了解Tomcat的基本结构。在解压的`apache-tomcat-...

    tomcat部署多个项目

    本文将详细介绍在 Tomcat 上部署多个项目的方法及其操作步骤,并对不同的部署方式进行对比分析。 #### 二、部署方式概述 在 Tomcat 上部署多个项目主要通过以下几种方式实现: 1. **直接放置于`webapps`目录:** ...

    服务器部署多个tomcat方法

    标题"服务器部署多个tomcat方法"暗示我们将探讨如何在单个服务器上配置和管理多个独立运行的Tomcat实例,以实现应用隔离、负载均衡或服务多样化。这通常涉及到配置、端口管理、目录结构和启动脚本的调整。 首先,...

    tomcat8-server

    【标题】"Tomcat8-Server" 是一个关于Apache Tomcat服务器的专题,特别是针对其第八个主要版本的讨论。Tomcat是Java Servlet和JavaServer Pages(JSP)的开源应用服务器,它由Apache软件基金会开发和维护。作为轻量...

    tomcat创建两个server

    在实际的应用场景中,有时我们需要在同一台服务器上运行多个不同的Web应用程序,并且希望它们各自运行在一个独立的环境中,即创建多个Web服务器。这种情况下,就需要通过配置Tomcat来实现这一目标。本文将详细介绍...

    tomcat配置多域名访问同一个服务下的多目录server.xml

    tomcat配置多域名访问同一个服务下的多目录server。文件在一个tomcat中部署多个web应用。

    Tomcat下部署多个项目

    Tomcat多项目部署的方法 Tomcat提供了多种方式来部署多个项目,下面将介绍两种常见的方法: 1. 使用Context部署多个项目 在Tomcat的server.xml文件中,我们可以添加多个Context元素,每个Context元素对应一个...

    Tomcat与Java.Web开发技术详解

    Tomcat由多个组件构成,如Catalina(Servlet容器)、Jasper(JSP引擎)和 Coyote(HTTP/HTTPS连接器)。了解如何配置和管理Tomcat服务器,包括修改server.xml配置文件来设置端口、部署应用、以及调整性能参数等,是...

    Tomcat与Java_Web开发技术详解3.pdf

    3. **虚拟主机**:可以在同一台服务器上运行多个不同的Web站点。 综上所述,《Tomcat与Java Web开发技术详解》这本书不仅全面覆盖了Tomcat的基本使用方法,还深入探讨了Java Web开发中的高级技术,对于希望深入了解...

    IIS整合多个tomcat

    整合多个Tomcat时,可以利用IIS的内置负载均衡功能,根据预设策略(如轮询、最少连接等)分发请求。同时,通过健康检查机制,IIS能检测后端Tomcat的状态,当某个实例故障时,自动将请求转发到其他正常运行的Tomcat。...

    tomcat配置多个程序的设置

    在Tomcat的`webapps`目录下,每个Web应用程序对应一个子目录,或者是一个`.war`文件。当你把`.war`文件放置在这个目录下,Tomcat会自动解压缩并部署该应用。如果需要部署的是已解压的目录,只需直接将其复制到`...

    配置-Tomcat多server.rar_Tomcat 配置 多个服务地址

    标题“配置-Tomcat多server.rar”暗示我们将讨论如何在Tomcat中设置多个服务器(或服务)配置。描述中的“Tomcat 下如果需要多地址 配置目录下面加载新的路径”提到了关键配置元素——`&lt;Host&gt;`标签,这是在Tomcat的...

    webServer tomcat5 / tomcat6 / tomcat7 / tomcat8

    标题中的"webServer tomcat5 / tomcat6 / tomcat7 / tomcat8"涉及到的是Apache Tomcat服务器的不同版本。Tomcat是一款开源的Java Servlet容器,主要用于实现Java Web应用程序的运行环境。它支持Servlet和JSP标准,由...

    Linux下使用tomcat发布Web项目

    Linux 下使用 Tomcat 发布 Web 项目 本文将详细介绍如何在 Linux 系统...使用 Tomcat 在 Linux 系统下发布 Web 项目需要了解 Linux 系统的基本命令和 Tomcat 的配置文件,同时需要了解权限机制和常见的问题解决方法。

    Myeclipse配置多个Tomcat

    在 MyEclipse 中配置多个 Tomcat 是一种非常实用的方法尤其是在开发多个项目时,避免了每个项目之间的冲突和配置修改的烦恼。下面我们将一步步地讲解如何在 MyEclipse 中配置多个 Tomcat。 首先,我们需要了解 ...

    模仿tomcat的国产开源web服务器

    Tomcat作为Java Servlet和JavaServer Pages(JSP)技术的标准实现,是许多开发者进行Java Web应用部署的首选。而JerryMouse旨在提供与Tomcat类似的性能和功能,同时在用户交互体验上做出改进,以适应更广泛的用户...

    casServer+tomcat

    总的来说,CasServer与Tomcat的集成提供了一种高效且安全的认证解决方案,尤其适用于拥有多个内部应用的企业或组织。通过熟悉和掌握这种集成方法,开发者可以为用户提供更加便捷、安全的访问体验。

    同时部署多个Tomcat

    当需要在同一台服务器上运行多个不同的Web应用或者为了负载均衡、故障恢复等原因,我们需要部署多个Tomcat实例。以下是对"同时部署多个Tomcat"这一主题的详细解释: 一、为什么需要同时部署多个Tomcat? 1. 应用...

Global site tag (gtag.js) - Google Analytics