阿里云Centos6.5 部署多个Tomcat 实例。解析

访客 阅读:233 2021-03-31 21:35:07 评论:0

前景提要:

为了实现服务器使用效率最大化,有必要配置两个tomcat在一个或多个服务器中。下面介绍在同一个服务器配置两个Tomcat的过程。


详细步骤讲解:

1、拷贝原来的Tomcat到另外一个目录,并且重新命名     如:tomcat1


2、修改Tomcat1中的server.xml文件,把shutdown和Connector端口修改成另外的数值,如8006/8081

以下是我修改后的相关文件:

<?xml version='1.0' encoding='utf-8'?> 
<!-- 
  Licensed to the Apache Software Foundation (ASF) under one or more 
  contributor license agreements.  See the NOTICE file distributed with 
  this work for additional information regarding copyright ownership. 
  The ASF licenses this file to You under the Apache License, Version 2.0 
  (the "License"); you may not use this file except in compliance with 
  the License.  You may obtain a copy of the License at 
 
      http://www.apache.org/licenses/LICENSE-2.0 
 
  Unless required by applicable law or agreed to in writing, software 
  distributed under the License is distributed on an "AS IS" BASIS, 
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 
  See the License for the specific language governing permissions and 
  limitations under the License. 
--> 
<!-- Note:  A "Server" is not itself a "Container", so you may not 
     define subcomponents such as "Valves" at this level. 
     Documentation at /docs/config/server.html 
 --> 
<Server port="8006" shutdown="SHUTDOWN"> 
  <!-- Security listener. Documentation at /docs/config/listeners.html 
  <Listener className="org.apache.catalina.security.SecurityListener" /> 
  --> 
  <!--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" /> 
  <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" /> 
  <Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" /> 
 
  <!-- Global JNDI resources 
       Documentation at /docs/jndi-resources-howto.html 
  --> 
  <GlobalNamingResources> 
    <!-- Editable user database that can also be used by 
         UserDatabaseRealm to authenticate users 
    --> 
    <Resource name="UserDatabase" auth="Container" 
              type="org.apache.catalina.UserDatabase" 
              description="User database that can be updated and saved" 
              factory="org.apache.catalina.users.MemoryUserDatabaseFactory" 
              pathname="conf/tomcat-users.xml" /> 
  </GlobalNamingResources> 
 
  <!-- A "Service" is a collection of one or more "Connectors" that share 
       a single "Container" Note:  A "Service" is not itself a "Container", 
       so you may not define subcomponents such as "Valves" at this level. 
       Documentation at /docs/config/service.html 
   --> 
  <Service name="Catalina"> 
 
    <!--The connectors can use a shared executor, you can define one or more named thread pools--> 
    <!-- 
    <Executor name="tomcatThreadPool" namePrefix="catalina-exec-" 
        maxThreads="150" minSpareThreads="4"/> 
    --> 
 
 
    <!-- A "Connector" represents an endpoint by which requests are received 
         and responses are returned. Documentation at : 
         Java HTTP Connector: /docs/config/http.html (blocking & non-blocking) 
         Java AJP  Connector: /docs/config/ajp.html 
         APR (HTTP/AJP) Connector: /docs/apr.html 
         Define a non-SSL HTTP/1.1 Connector on port 8080 
    --> 
    <Connector port="8081" protocol="HTTP/1.1" 
               connectionTimeout="20000" 
               redirectPort="8443" /> 
    <!-- A "Connector" using the shared thread pool--> 
    <!-- 
    <Connector executor="tomcatThreadPool" 
               port="8080" protocol="HTTP/1.1" 
               connectionTimeout="20000" 
               redirectPort="8443" /> 
    --> 
    <!-- Define a SSL HTTP/1.1 Connector on port 8443 
         This connector uses the JSSE configuration, when using APR, the 
         connector should be using the OpenSSL style configuration 
         described in the APR documentation --> 
    <!-- 
    <Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true" 
               maxThreads="150" scheme="https" secure="true" 
               clientAuth="false" sslProtocol="TLS" /> 
    --> 
 
    <!-- Define an AJP 1.3 Connector on port 8009 --> 
    <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" /> 
 
 
    <!-- An Engine represents the entry point (within Catalina) that processes 
         every request.  The Engine implementation for Tomcat stand alone 
         analyzes the HTTP headers included with the request, and passes them 
         on to the appropriate Host (virtual host). 
         Documentation at /docs/config/engine.html --> 
 
    <!-- You should set jvmRoute to support load-balancing via AJP ie : 
    <Engine name="Catalina" defaultHost="localhost" jvmRoute="jvm1"> 
    --> 
    <Engine name="Catalina" defaultHost="localhost"> 
 
      <!--For clustering, please take a look at documentation at: 
          /docs/cluster-howto.html  (simple how to) 
          /docs/config/cluster.html (reference documentation) --> 
      <!-- 
      <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/> 
      --> 
 
      <!-- Use the LockOutRealm to prevent attempts to guess user passwords 
           via a brute-force attack --> 
      <Realm className="org.apache.catalina.realm.LockOutRealm"> 
        <!-- This Realm uses the UserDatabase configured in the global JNDI 
             resources under the key "UserDatabase".  Any edits 
             that are performed against this UserDatabase are immediately 
             available for use by the Realm.  --> 
        <Realm className="org.apache.catalina.realm.UserDatabaseRealm" 
               resourceName="UserDatabase"/> 
      </Realm> 
 
      <Host name="localhost"  appBase="webapps" 
            unpackWARs="true" autoDeploy="true"> 
 
        <!-- SingleSignOn valve, share authentication between web applications 
             Documentation at: /docs/config/valve.html --> 
        <!-- 
        <Valve className="org.apache.catalina.authenticator.SingleSignOn" /> 
        --> 
 
        <!-- 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" /> 
 
      </Host> 
    </Engine> 
  </Service> 
</Server> 
3、修改startup.sh和shutdown.sh文件,在第一行加入:
export CATALINA_HOME=/usr/local/tomcat1

以下是相关配置文件:

shutdown.sh

#!/bin/sh 
 
# Licensed to the Apache Software Foundation (ASF) under one or more 
# contributor license agreements.  See the NOTICE file distributed with 
# this work for additional information regarding copyright ownership. 
# The ASF licenses this file to You under the Apache License, Version 2.0 
# (the "License"); you may not use this file except in compliance with 
# the License.  You may obtain a copy of the License at 
# 
#     http://www.apache.org/licenses/LICENSE-2.0 
# 
# Unless required by applicable law or agreed to in writing, software 
# distributed under the License is distributed on an "AS IS" BASIS, 
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 
# See the License for the specific language governing permissions and 
# limitations under the License. 
 
# ----------------------------------------------------------------------------- 
# Stop script for the CATALINA Server 
# 
# $Id: shutdown.sh 1202062 2011-11-15 06:50:02Z mturk $ 
# ----------------------------------------------------------------------------- 
 
# Better OS/400 detection: see Bugzilla 31132 
export CATALINA_HOME=/usr/local/tomcat1 
os400=false 
case "`uname`" in 
OS400*) os400=true;; 
esac 
 
# resolve links - $0 may be a softlink 
PRG="$0" 
 
while [ -h "$PRG" ] ; do 
  ls=`ls -ld "$PRG"` 
  link=`expr "$ls" : '.*-> \(.*\)$'` 
  if expr "$link" : '/.*' > /dev/null; then 
    PRG="$link" 
  else 
    PRG=`dirname "$PRG"`/"$link" 
  fi 
done 
 
PRGDIR=`dirname "$PRG"` 
EXECUTABLE=catalina.sh 
 
# Check that target executable exists 
if $os400; then 
  # -x will Only work on the os400 if the files are: 
  # 1. owned by the user 
  # 2. owned by the PRIMARY group of the user 
  # this will not work if the user belongs in secondary groups 
  eval 
else 
  if [ ! -x "$PRGDIR"/"$EXECUTABLE" ]; then 
    echo "Cannot find $PRGDIR/$EXECUTABLE" 
    echo "The file is absent or does not have execute permission" 
    echo "This file is needed to run this program" 
    exit 1 
  fi 
fi 
 
exec "$PRGDIR"/"$EXECUTABLE" stop "$@" 

startup.sh

#!/bin/sh 
 
# Licensed to the Apache Software Foundation (ASF) under one or more 
# contributor license agreements.  See the NOTICE file distributed with 
# this work for additional information regarding copyright ownership. 
# The ASF licenses this file to You under the Apache License, Version 2.0 
# (the "License"); you may not use this file except in compliance with 
# the License.  You may obtain a copy of the License at 
# 
#     http://www.apache.org/licenses/LICENSE-2.0 
# 
# Unless required by applicable law or agreed to in writing, software 
# distributed under the License is distributed on an "AS IS" BASIS, 
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 
# See the License for the specific language governing permissions and 
# limitations under the License. 
 
# ----------------------------------------------------------------------------- 
# Start Script for the CATALINA Server 
# 
# $Id: startup.sh 1202062 2011-11-15 06:50:02Z mturk $ 
# ----------------------------------------------------------------------------- 
 
# Better OS/400 detection: see Bugzilla 31132 
export CATALINA_HOME=/usr/local/tomcat1 
os400=false 
case "`uname`" in 
OS400*) os400=true;; 
esac 
 
# resolve links - $0 may be a softlink 
PRG="$0" 
 
while [ -h "$PRG" ] ; do 
  ls=`ls -ld "$PRG"` 
  link=`expr "$ls" : '.*-> \(.*\)$'` 
  if expr "$link" : '/.*' > /dev/null; then 
    PRG="$link" 
  else 
    PRG=`dirname "$PRG"`/"$link" 
  fi 
done 
 
PRGDIR=`dirname "$PRG"` 
EXECUTABLE=catalina.sh 
 
# Check that target executable exists 
if $os400; then 
  # -x will Only work on the os400 if the files are: 
  # 1. owned by the user 
  # 2. owned by the PRIMARY group of the user 
  # this will not work if the user belongs in secondary groups 
  eval 
else 
  if [ ! -x "$PRGDIR"/"$EXECUTABLE" ]; then 
    echo "Cannot find $PRGDIR/$EXECUTABLE" 
    echo "The file is absent or does not have execute permission" 
    echo "This file is needed to run this program" 
    exit 1 
  fi 
fi 
 
exec "$PRGDIR"/"$EXECUTABLE" start "$@" 



声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

发表评论
搜索
排行榜
KIKK导航

KIKK导航

关注我们