zoukankan      html  css  js  c++  java
  • Linux 下启动两个tomcat

    闲来无事学习nginx,想要配置个load balance。可是先决条件是:得有两个web容器。两个电脑是不用想了。只能想办法在一个机器上启动两个tomcat。原以为挺简单的,只要改改port就好了。谁知单单改port压根不会成功。网上找了很多解决方案,要么繁杂的要死,要么说的云里雾里的。于是决定结合网上的说法和自己的想法,重新写一个方案。

    先说解决方案吧。(我用的是tomcat-7.0.62,安装的路径是/usr/local/apache-tomcat-7.0.62)

    1.先把原来的tomcat复制一份,地址随便放,文件名随便取。我复制为 /usr/local/apache-tomcat-7.0.62-copy

    2.修改/usr/local/apache-tomcat-7.0.62-copy/conf/server.xml,用意是不要让端口与原来的冲突了

      在此server.xml中一共有三个port,下面列出的是默认的设置。这三个端口都要修改。(我一开始的想法是只要简单的后面加个1,变成80051,80801,80091,反正只要端口最大不超过65535就行了。结果报什么端口out of range 错误。。。。。)好吧,那就分别改为8006,8081,8010好了

    复制代码
    复制代码
    1 <!--这个好像是关闭的端口,具体作用不清楚-->
    2 <Server port="8005" shutdown="SHUTDOWN">
    3  
    4 <!--这个应该知道是什么端口吧-->
    5  <Connector port="8080" protocol="HTTP/1.1"  connectionTimeout="20000“ redirectPort="8443" />
    6  
    7  
    8  <!--注释上说是什么AJP 1.3的连接端口,具体什么作用还是不清出-->
    9  <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
    复制代码
    复制代码

    3.在~/.bash_profile中添加下面两个。 

    1 export CATALINA_BASE2=/usr/local/apache-tomcat-7.0.62-copy
    2 export CATALINA_HOME2=/usr/local/apache-tomcat-7.0.62-copy

    修改完成后用命令 source ~/.bash_profile使新配置的环境变量生效

     可以看到这两行的作用是添加环境变量,但是添加环境变量的方法并不只这一种。所以无论用什么方法,达到添加这两个环境变量的目的就行了。

    4.修改/usr/local/apache-tomcat-7.0.62-copy//bin/catalina.sh, 在开头的位置添加下面绿色的两行。(差不多就是在catalina.sh开始的位置)

    复制代码
    复制代码
     1 # resolve links - $0 may be a softlink
     2 PRG="$0"
     3 
     4 while [ -h "$PRG" ]; do
     5   ls=`ls -ld "$PRG"`
     6   link=`expr "$ls" : '.*-> (.*)$'`
     7   if expr "$link" : '/.*' > /dev/null; then
     8     PRG="$link"
     9   else
    10     PRG=`dirname "$PRG"`/"$link"
    11   fi
    12 done
    13 
    14 # Get standard environment variables
    15 PRGDIR=`dirname "$PRG"`
    16 
    17 # Only set CATALINA_HOME if not already set
    18 [ -z "$CATALINA_HOME" ] && CATALINA_HOME=`cd "$PRGDIR/.." >/dev/null; pwd`
    19 
    20 # Copy CATALINA_BASE from CATALINA_HOME if not already set
    21 [ -z "$CATALINA_BASE" ] && CATALINA_BASE="$CATALINA_HOME"
    22 
    23 CATALINA_HOME=$CATALINA_HOME2
    24 CATALINA_BASE=$CATALINA_BASE2
    复制代码
    复制代码

    5. 分别启动两个tomcat就好了。

    好吧,下面的东西是我自己看catalina.sh的解释,与启动两个tomcat没有任何关系。

    上面第四步的那一段代码的目的就是取得 CATALINA_HOME和CATALINA_BASE。

      一开始这一段是说如果sh是链接的话的处理方法。$0就是bash文件的名称。

    复制代码
    复制代码
     1 # resolve links - $0 may be a softlink
     2 PRG="$0"
     3 
     4 while [ -h "$PRG" ]; do
     5   ls=`ls -ld "$PRG"`
     6   link=`expr "$ls" : '.*-> (.*)$'`
     7   if expr "$link" : '/.*' > /dev/null; then
     8     PRG="$link"
     9   else
    10     PRG=`dirname "$PRG"`/"$link"
    11   fi
    12 done
    复制代码
    复制代码

     下面有一句就是取得bash所在的文件夹。

    1 # Get standard environment variables
    2 PRGDIR=`dirname "$PRG"`

    再下面注释写的很清楚了,如果我们配置了CATALINA_HOME的环境变量,那就什么都不干,如果没有配置,那就让变量CATALINE_HOME指向 PRGIDR的父目录,实际就是tomcat安装目录。

    1 # Only set CATALINA_HOME if not already set
    2 [ -z "$CATALINA_HOME" ] && CATALINA_HOME=`cd "$PRGDIR/.." >/dev/null; pwd`
    3 
    4 # Copy CATALINA_BASE from CATALINA_HOME if not already set
    5 [ -z "$CATALINA_BASE" ] && CATALINA_BASE="$CATALINA_HOME"

    我们的修改的意思是不管前面CATALINA_HOME和CATALINA_BASE设置为了什么,反正最后我一刀切,全设置为我想要的,即如下的代码

    1 CATALINA_HOME=$CATALINA_HOME2
    2 CATALINA_BASE=$CATALINA_BASE2

    下面还有一个说明:

    理论上来讲上面的配置就可以了。可是有一点小小的瑕疵:假设环境变量$CATALINA_HOME2和$CATALINA_BASE2是设在root用户下的,那么tomcat救只能用root用户启动了,别的用户根本启动不了。

    并且,如果某个不知道catalina.sh已经被修改过的人复制apache-tomcat-7.0.62-copy到另外的地方,比如另一台服务器,他会发现tomcat启动不了了。。。其实catalina.sh这么写更好,即把绿色的那两行往前移一移就好了

    复制代码
    复制代码
     1 # resolve links - $0 may be a softlink
     2 PRG="$0"
     3 
     4 while [ -h "$PRG" ]; do
     5   ls=`ls -ld "$PRG"`
     6   link=`expr "$ls" : '.*-> (.*)$'`
     7   if expr "$link" : '/.*' > /dev/null; then
     8     PRG="$link"
     9   else
    10     PRG=`dirname "$PRG"`/"$link"
    11   fi
    12 done
    13 
    14 # Get standard environment variables
    15 PRGDIR=`dirname "$PRG"`
    16 
    17 CATALINA_HOME=$CATALINA_HOME2
    18 CATALINA_BASE=$CATALINA_BASE2
    19 
    20 # Only set CATALINA_HOME if not already set
    21 [ -z "$CATALINA_HOME" ] && CATALINA_HOME=`cd "$PRGDIR/.." >/dev/null; pwd`
    22 
    23 # Copy CATALINA_BASE from CATALINA_HOME if not already set
    24 [ -z "$CATALINA_BASE" ] && CATALINA_BASE="$CATALINA_HOME"



     
     

    实验系统:CentOS 6.6_x86_64

    实验前提:防火墙和selinux都关闭

    实验软件:apache-tomcat-8.0.24  jdk-8u60-linux-x64  jeecms-v6

    一、安装JAVA环境

    1.安装JAVA:

    wget http://download.Oracle.com/otn-pub/java/jdk/8u60-b27/jdk-8u60-linux-x64.tar.gz
    tar xf jdk-8u60-linux-x64.tar.gz -C /usr/local/
    cd /usr/local/
    ln -sv jdk1.8.0_60 jdk

    2.配置环境变量:

    vim /etc/profile.d/jdk.sh
    --------------------------------------------------->
    JAVA_HOME=/usr/local/jdk
    PATH=$JAVA_HOME/bin:$PATH
    export JAVA_HOME PATH
    <---------------------------------------------------
    . /etc/profile.d/jdk.sh        //重读此文件,让变量生效

    3.查看JAVA是否安装成功:

    java -version

    二、安装tomcat

    1.安装tomcat:

    wget http://mirrors.cnnic.cn/apache/tomcat/tomcat-8/v8.0.24/bin/apache-tomcat-8.0.24.tar.gz
    tar xf apache-tomcat-8.0.24.tar.gz -C /usr/local/
    cd /usr/local/
    ln -sv apache-tomcat-8.0.24 tomcat

    2.配置环境变量:

    vim /etc/profile.d/tomcat.sh
    --------------------------------------------------->
    CATALINA_BASE=/usr/local/tomcat
    PATH=$CATALINA_BASE/bin:$PATH
    export PATH CATALINA_BASE
    <---------------------------------------------------
    . /etc/profile.d/tomcat.sh

    3.查看tomcat版本状态:

    catalina.sh version

    三、配置tomcat

    1.配置server.xml:

    vim /usr/local/tomcat/conf/server.xml
    ---------------------------------------------------------->
     <Connector port="80" protocol="HTTP/1.1"      //默认端口为8080,改为80
                connectionTimeout="20000"
                redirectPort="8443" />

    2.tomcat有manager-gui的管理页面,想要使用必须配置管理用户,不使用可以跳过此步。配置tomcat-users.xml:

    vim /usr/local/tomcat/conf/tomcat-users.xml
    ------------------------------------------------------------------------------->
    <role rolename="manager-gui"/>                                        //指定用户可以使用的接口为manager-gui
    <user username="tomcat" password="tomcat" roles="manager-gui"/>      //用户名和密码为tomcat,在manager-gui接口使用

    3.创建测试页面:

    mkdir -pv /usr/local/tomcat/webapps/test/WEB-INF/{classes,lib}
    vim /usr/local/tomcat/webapps/test/index.jsp
    --------------------------------------------------------------->
    <%@ page language="java" %>
    <%@ page import="java.util.*" %>
    <html>
        <head>
            <title>test</title>
        </head>
        <body>
            <%
                out.println("Hello World!");      //嵌入java语言
            %>
        </body>
    </html>

    4.启动测试:

    catalina.sh start

    用浏览器打开http://192.168.19.74,并打开Manager App管理页面,用之前配置的用户名和密码进入:

    进入管理界面,可以看到刚才创建的test已经装载了,点击进去,即可看到测试页面了。之前没有配置manager-gui的可以直接使用http://192.168.19.74/test打开:

    四、拓展实验

    1.可安装的JAVA程序很多,这里用JEECMS做演示,首先放入程序文件,程序可从http://www.jeecms.com下载:

    unzip jeecmsv6.zip
    mv ROOT/ /usr/local/tomcat/webapps/cms
    catalina.sh stop
    catalina.sh start

    2.浏览器打开http://192.168.19.74/cms,进入安装页面:

         

    3.写入相关参数,mysql的安装及使用这里不再写出:

    4.重启tomcat服务并访问http://192.168.19.74/cms/jeeadmin/jeecms/index.do,用户名admin,密码password:

    catalina.sh stop
    catalina.sh start

    至此,tomcat的简单配置演示完毕了,感谢大家的收看,谢谢!

    RedHat Linux 5.5安装JDK+Tomcat并部署Java项目  http://www.linuxidc.com/Linux/2015-02/113528.htm 

    Tomcat权威指南(第二版)(中英高清PDF版+带书签)  http://www.linuxidc.com/Linux/2015-02/113062.htm 

    Tomcat 安全配置与性能优化 http://www.linuxidc.com/Linux/2015-02/113060.htm 

    Linux下使用Xshell查看Tomcat实时日志中文乱码解决方案 http://www.linuxidc.com/Linux/2015-01/112395.htm 

    CentOS 64-bit下安装JDK和Tomcat并设置Tomcat开机启动操作步骤 http://www.linuxidc.com/Linux/2015-01/111485.htm 

    CentOS 6.5下安装Tomcat  http://www.linuxidc.com/Linux/2015-01/111415.htm 

    Tomcat 的详细介绍请点这里
    Tomcat 的下载地址请点这里

    Linux下同时启动两个Tomcat进行设置.

     

    Linux版本:Linux version 2.6.32-431.11.2.el6.x86_64

    Tomcat:apache-tomcat-6.0.41.tar.gz(官方下载)

    解压tar.gz:tar -zxvf apache-tomcat-6.0.41.tar.gz 至相应的路径下,可解压至两个不同的路径或者相同的路径下不同的文件夹,不需要安装,直接部署程序即可。

    接下来修改tomcat文件夹conf目录下的server.xml文件:

     

    <Server port="8015" shutdown="SHUTDOWN">     默认为8005--》修改为8015

      <!--APR library loader. Documentation at /docs/apr.html -->
      <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
      <!--Initialize Jasper prior to webapps are loaded. Documentation at /docs/jasper-howto.html -->
      <Listener className="org.apache.catalina.core.JasperListener" />
      <!-- Prevent memory leaks due to use of particular java/javax APIs-->
      <Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />
      <!-- JMX Support for the Tomcat server. Documentation at /docs/non-existent.html -->
      <Listener className="org.apache.catalina.mbeans.ServerLifecycleListener" />
      <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />

    .........

        <Connector port="8091" protocol="HTTP/1.1"    默认为8080--》修改为8091              

          connectionTimeout="20000" 
                   redirectPort="8443" />

     

    ........

        <Connector port="8019" protocol="AJP/1.3" redirectPort="8443" />      默认为8009--》修改为8019

     

    以上三处红色注明的部分修改,只需要两个文件中此三处不同,启动tomcat,成功。

    本文永久更新链接地址http://www.linuxidc.com/Linux/2015-08/122234.htm

    centos6.5下配置多个tomcat

    原创 2016年06月27日 09:35:45

    步骤如下: 
    1)修改/etc/profile文件。添加一组java环境变量,和两组CATALINA环境变量(我没有进行此步骤的设置,可能因为我的Tomcat是免安装版的吧) 
    记得修改完要使其生效,用命令:source /etc/profile

    JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.71.x86_64 
    PATH=JAVAHOME/bin:JAVAHOME/bin:PATH 
    CLASSPATH=.:JAVAHOME/lib/dt.jar:JAVAHOME/lib/dt.jar:JAVA_HOME/lib/tools.jar 
    export JAVA_HOME 
    export PATH 
    export CLASSPATH

    第一个Tomcat

    CATALINA_BASE=/opt/apache-tomcat-5.5.33 
    CATALINA_HOME=/opt/apache-tomcat-5.5.33 
    export CATALINA_BASE CATALINA_HOME

    第二个Tomcat

    CATALINA_2_BASE=/opt/apache-tomcat-7.0.56 
    CATALINA_2_HOME=/opt/apache-tomcat-7.0.56 
    export CATALINA_2_BASE CATALINA_2_HOME

    第三个个Tomcat

    CATALINA_3_BASE=/home/apache-tomcat-6.0.44 
    CATALINA_3_HOME=/home/apache-tomcat-6.0.44 
    export CATALINA_3_BASE CATALINA_3_HOME

    第四个tomcat

    CATALINA_4_BASE=/home/apache-tomcat-8.0.29 
    CATALINA_4_HOME=/home/apache-tomcat-8.0.29 
    export CATALINA_4_BASE CATALINA_4_HOME

    第一个Tomcat路径

    TOMCAT_HOME=/opt/apache-tomcat-5.5.33 
    export TOMCAT_HOME

    第二个Tomcat路径

    TOMCAT_2_HOME=/opt/apache-tomcat-7.0.56 
    export TOMCAT_2_HOME

    第三个Tomcat路径

    TOMCAT_3_HOME=/home/apache-tomcat-6.0.44 
    export TOMCAT_3_HOME

    第四个tomcat

    TOMCAT_4_HOME=/home/apache-tomcat-8.0.29 
    export TOMCAT_4_HOME

    (2)把tomcat_2/conf下的server.xml打开,修改关闭端口与启动端口。这样就可以在linux下同时运行两个tomcat了。运行更多tomcat方法是一样的。

    (3)主要要点就是tomcat启动的时候会去查找tomat 的根目录,而这是通过查询系统环境变量CATALINA_HOME 以及

    CATALINA_BASE 来做到的,于是我们只需要设置这两个变量即可。 
    现在我们把tomcat拷贝成2份,分别为 tomcat1 和 tomcat2,tomcat1 我们使用之前配置好的默认配置

    (CATALINA_HOME 以及 CATALINA_BASE 均指向 tomca1 目录),但tomcat2 我们不能再使用系统上配置的这两个

    变量了,那么我们就在 tomcat2的bin目录下面的 catalina.sh 临时修改设置 CATALINA_HOME 和 CATALINA_BASE

    为tomcat2的根目录即可,如果再加tomcat 以此类推即可。

    打开catalina.sh ,找到下面红字,在下面增加如下代码

    # OS specific support. $var must be set to either true or false.

    myself : add

    export CATALINA_BASE=CATALINA_2_BASE  
    export CATALINA_HOME=CATALINA_2_BASE  export CATALINA_HOME=CATALINA_2_HOME

    设置虚拟机参数

    JAVA_OPTS=”-Xms512m -Xmx512m -Xss1024K -XX:PermSize=128m -XX:MaxPermSize=256m”

    版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u014600520/article/details/51766361
     
     

    CentOS 系统下安装多个tomcat,占用不同的端口

    原创 2017年05月19日 12:13:02

    1.安装tomcat,解压到指定的目录

    2.修改环境变量:/etc/init.d/tomcat(这是我的,一般的都是/etc/profile)

    3.加入以下代码(tomcat路径要配置自己实际的tomcat安装目录)
    ##########first tomcat###########
    CATALINA_BASE=/usr/local/tomcat
    CATALINA_HOME=/usr/local/tomcat
    TOMCAT_HOME=/usr/local/tomcat
    export CATALINA_BASE CATALINA_HOME TOMCAT_HOME
    ##########first tomcat############
    ##########second tomcat##########
    CATALINA_2_BASE=/usr/local/tomcat_2
    CATALINA_2_HOME=/usr/local/tomcat_2
    TOMCAT_2_HOME=/usr/local/tomcat_2
    export CATALINA_2_BASE CATALINA_2_HOME TOMCAT_2_HOME
    ####################

    4.保存退出。
    5.再输入:source /etc/profilecond tomcat在生效

    6.第一个tomcat,保持解压后的原状不用修改, 

    来到第二个tomcat的bin目录下打开catalina.sh ,找到下面红字,

     # OS specific support.  $var _must_ be set to either true or false.

    在下面增加如下代码

    export CATALINA_BASE=$CATALINA_2_BASE
    export CATALINA_HOME=$CATALINA_2_HOME

    7.来到第二个tomcat的conf目录下
    打开server.xml更改端口:

    修改server.xml配置和第一个不同的启动、关闭监听端口。
    修改后示例如下:
      <Server port="9005" shutdown="SHUTDOWN">                端口:8005->9005
    <!-- Define a non-SSL HTTP/1.1 Connector on port 8080 -->
        <Connector port="9080" maxHttpHeaderSize="8192"        端口:8080->9080
    maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
                   enableLookups="false" redirectPort="8443" acceptCount="100"
                   connectionTimeout="20000" disableUploadTimeout="true" />
    <!-- Define an AJP 1.3 Connector on port 8009 -->
        <Connector port="9009"                                  端口:8009->9009
                   enableLookups="false" redirectPort="8443" protocol="AJP/1.3" />

    8.分别进入两个tomcat的bin目录,启动tomcat--./startup.sh

    9.然后访问http://localhost:8080 和 http://localhost:9080 都可以看到熟悉的tomcat欢迎界面

  • 相关阅读:
    494 Target Sum 目标和
    493 Reverse Pairs 翻转对
    492 Construct the Rectangle 构建矩形
    491 Increasing Subsequences 递增子序列
    488 Zuma Game 祖玛游戏
    486 Predict the Winner 预测赢家
    485 Max Consecutive Ones 最大连续1的个数
    483 Smallest Good Base
    Django Form组件
    Django Auth组件
  • 原文地址:https://www.cnblogs.com/qianzf/p/12836486.html
Copyright © 2011-2022 走看看