zoukankan      html  css  js  c++  java
  • 多实例tomcat

    本文介绍在同一个tomcat下运行mydomain.com和mysite.com这两个实例的步骤。

    有时候,我们希望周期性的更新Tomcat;有时候,我们又想统一管理安装在一台机器上的tomcat(比如让tomcat版本统一,让多个实例的tomcat的依赖统一、配置统一等)。在这些场景下,我们都不希望把Web应用程序的文件放入Tomcat发行版的目录结构中,而是让一个tomcat运行多个实例,并把Web应用放在tomcat的安装目录之外。

    一般在使用Tomcat时,服务器会从conf及webapps目录中读取配置文件,并将文件写入logs、temp和work目录,当然一些jar文件和class文件需要从服务器的公共目录树中予以加载。因此,为了让多个实例能同时运行,每一个Tomcat实例都必须有自己的目录集

    首先,下载tomcat安装包,并解压,这里我使用的tomcat版本是tomcat-8.0.33:

    然后,创建一个文件夹tomcat-instance(该文件夹用于存放tomcat所有实例),并在这个文件夹下分别创建mydomain.com和mysite.com两个实例文件夹:

    mkdir tomcat-instance
    cd tomcat-instance
    mkdir mydomain.com
    mkdir mysite.com

    对于mydomain.com,依次做以下步骤:

    1. 拷贝Tomcat安装目录的conf文件夹下的所有内容,到mydomain.com文件夹下:

    cd mydomain.com
    cp -a /home/user/Software/apache-tomcat-8.0.33/conf .
    mkdir common logs temp server shared webapps work

    2.修改mydomain.com/conf/server.xml,将停止端口号修改为不同的端口号:

    3.修改Connector的端口号:

    4.删除server.xml中所有的Context元素(因为这份server.xml来自于tomcat的安装目录,如果曾经用该tomcat部署过项目,server.xml中就会有Context元素,由于现在没有将这些项目复制到mydomain.com实例的webapps文件夹下)及嵌套的所有元素,并加入与自己的webapps相关的内容。

    5.为了简化变量设置步骤,创建tomcat启动脚本start-mydomain.sh,并将该文件放在tomcat-instance目录下,该文件的内容如下:

    6.修改脚本的权限,使其可执行:

    7.用脚本启动tomcat实例:

    可以看到,这个实例使用的CATALINA_BASE是instance/mydomain.com,这里的CATALINA_HOME是安装tomcat的目录

    8.将Web应用程序内容拷贝到mydomain.com/webapps目录(这里我只拷贝示例文件),从浏览器验证启动的tomcat实例:

    到这里,tomcat实例mydomain.com已经正常运行了。

    另一个实例mysite.com也按照1~8的步骤依次进行,但是注意以下步骤的不同配置:

    2.Server端口号修改为8013。

    3.Connector端口号修改为8082。

    5.脚本中的CATALINA_BASE修改为/home/user/Software/tomcat-instance/mysite.com。

    7.用脚本启动mysite.com实例:

    可以看到,这个实例使用的CATALINA_BASE是instance/mysite.com。而这里的CATALINA_HOME依然是安装tomcat的目录,这和mydomain.com实例的配置是一样的,说明二者确实共用了一个安装目录。

    8.拷贝示例文件到mysite.com/webapps目录,从浏览器验证启动的tomcat实例:

    至此,tomcat的多实例已能正常运行,当然,也可以为这些实例创建停止tomcat的脚本。

    当把Web应用的文件和Tomcat发行版的文件分开管理后,升级Tomcat将会变得十分容易,因为我们可以用新目录直接替换整个Tomcat发行版的目录。

  • 相关阅读:
    bootstrap4 Reboot details summary 美化(点选禁止选中文本,单行隐藏角标,多行后移)
    在C#中,Newtonsoft.Json + dynamic动态解析jsonString,jsonString转实体
    在C#中,Windows Console控制台 设置控制台标题、禁用关闭按钮、关闭快速编辑模式、插入模式
    MySql数据库中,判断表、表字段是否存在,不存在就新增
    Windows 10安装Docker 步骤及顺序
    AES加密解密 助手类 CBC加密模式
    处理模板页菜单高亮
    C# 按不同的字节编码,通过字节数去截取字符串
    2018年4月13日,祝自己24岁生日快乐!
    一个数值保存复选框的值
  • 原文地址:https://www.cnblogs.com/ronghui/p/9135732.html
Copyright © 2011-2022 走看看