Tomcat配置管理

本文主要讲一下与Tomcat相关的配置,主要包括下面四个方面:

1、JVM相关配置:Tomcat启动时支持的JVM相关配置

2、服务器相关配置:conf下面的配置

3、web应用相关配置:servlet容器相关以及web应用定制部署

4、管理配置

一、JVM先关配置

1、JVM内存配置

set JAVA_OPTS=-server -Xms1024m -Xmx2048m -XX:PermSize=256m -XX:MaxPermSize=512m   (Windows下)

JAVA_OPTS="-server -Xms1024m -Xmx2048m -XX:PermSize=256m -XX:MaxPermSize=512m"  (Linux下)

把上面的添加到启动文件(catalina.bat或者catalina.sh)的首行

其中:

Xms:堆内存的初始大小

Xmx:表示堆内存的最大值

XX:PermSize:非堆内存的大小,在JDK1.8已经改为-XX:MetaspaceSize  ,也就是元数据空间

XX:MaxPermSize:非堆内存的最大值,同样在JDK1.8改为-XX:MaxMetaspaceSize

更多配置请参看http://docs.oracle.com/javase/8/docs/technotes/tools/windows/java.html#CBBIJCHG

二、服务器相关配置

1、conf/catalina.properties文件

主要用于Catalina容器启动阶段的配置文件。

package.access:限制是否可以访问某个包下的类

package.definition:限制是否可以在某个包下面定义类

common.loader:Tomcat公共类加载器加载jar包路径列表

common.loader=${catalina.base}/lib,${catalina.base}/lib/*.jar,${catalina.home}/lib,${catalina.home}/lib/*.jar

server.loader:应用服务器类加载器加载jar 包路径列表,默认为空,使用公共类加载器来加载

shared.loader:web应用父类加载器加载jar包路径列表,默认为空使用公共类加载器

tomcat.util.scan.DefaultJarScanner.jarsToSkip:tomcat使用JarScanner扫描JAR包时可以跳过的JAR包列表

。。。。

2、server.xml

1、Server

<Server port="8005" shutdown="SHUTDOWN">

port:tomcat监听的关闭服务器你的端口

Server可以内嵌的元素为:<Service>、<GlobalNamingResources>、<Listeners>

Service:用于创建Service实

<Service name="Catalina">

   <--默认没有,minSpareThreads是备用线程的最小数量

        <Executor name="tomcatThreadPool" namePrefix="catalina-exec-"

        maxThreads="150" minSpareThreads="4"/>
    -->
注: 当希望提高服务器请求并发处理能力时,我们需要同时修改线程池的配置,此时增加共享线程池可以灵活配置来提升线程使用率节省系统资源

   

<Connector port="8888" protocol="HTTP/1.1” connectionTimeout="20000"  redirectPort="8443" />

支持http协议   

 <!--使用共享线程池的连接器,默认没有开启->

    <!--
    <Connector executor="tomcatThreadPool"
               port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />
    -->
    <!---->
    <!--
    <Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol"
               maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
               clientAuth="false" sslProtocol="TLS" />
    -->


    <!-- 使用AJP1.3协议监听端口8009-->
    <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

    <!-- You should set jvmRoute to support load-balancing via AJP ie :
    <Engine name="Catalina" defaultHost="localhost" jvmRoute="jvm1">
    -->
    < Engine name="Catalina" defaultHost="localhost">
      <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/> //用于集群配置
      <Realm className="org.apache.catalina.realm.LockOutRealm">
         <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
               resourceName="UserDatabase"/>
      </Realm>


//Host用于配置Tomcat虚拟主机组件

      <Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">
        <Valve className="org.apache.catalina.authenticator.SingleSignOn" />

        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
               prefix="localhost_access_log." suffix=".txt"
               pattern="%h %l %u %t &quot;%r&quot; %s %b" />
<!--<Context docBase="ivis-0.0.1" path="/ivis" reloadable="false"/>-->

      </Host>
    </Engine>
  </Service>

GlobalNamingResources:定义了全局的命名服务

Listeners:为Server添加生命周期监听器





猜你喜欢

转载自blog.csdn.net/yuyongqun/article/details/81021086