`
wedtlcy
  • 浏览: 23496 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

[转]tomcat配置文件server.xml详解

    博客分类:
  • Java
 
阅读更多

<!-- Server中的port监听关闭tomcat的请求,shutdown指定向端口发送的命令串-->
<Server port="8005" shutdown="SHUTDOWN" debug="0">

   <Listener className="org.apache.catalina.mbeans.ServerLifecycleListener"
             debug="0"/>
   <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener"
             debug="0"/>

   <GlobalNamingResources>
     <Environment name="simpleValue" type="java.lang.Integer" value="30"/>
     <Resource name="UserDatabase" auth="Container"
               type="org.apache.catalina.UserDatabase"
        description="User database that can be updated and saved">
     </Resource>
     <ResourceParams name="UserDatabase">
       <parameter>
         <name>factory</name>
   <!--value与Logger差不多prefix和suffix解释一样,className指定value使用的类名如:org.apache.catalina.values.AccessLogValve类可以记录应用程序的访问信息,directory指定log 文件存放位置,pattern有两值,common方式记录远程主机名或ip地址,用户名,日期,第一行请求的字符串,HTTP响应代码,发送的字节数。 combined方式比common记录更多-->
         <value>org.apache.catalina.users.MemoryUserDatabaseFactory</value>
       </parameter>
       <parameter>
         <name>pathname</name>
         <value>conf/tomcat-users.xml</value>
       </parameter>
     </ResourceParams>
   </GlobalNamingResources>

   <Service name="Catalina">

     <!-- Connector中的port创建服务器端的端口号,此端口监听用户端的请求
maxThreads最大可以创建请求的线程数
minSpareThreads服务启动时创建的处理请求的进程数
enableLookups如果为true,则可以通过调用request.getRemoteHost()进行DNS查询来得到远程客户端的实际主机名,若为false则不进行DNS查询,而是返回其ip地址
redirectPort指定服务器正在处理http请求时收到一个SSL传输请求后重定向的端口号
acceptCount指定当处理请求线程都被使用时,可以放入处理队列的数目,超出将不进行处理
connectionTimeout指定超时的时间数(毫秒)-->
     <Connector port="80"
                maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
                enableLookups="false" redirectPort="8443" acceptCount="100"
                debug="0" connectionTimeout="20000"
                disableUploadTimeout="true" />
  
     <Connector port="8009"
                enableLookups="false" redirectPort="8443" debug="0"
                protocol="AJP/1.3" />
<!--Engine指定缺省的处理请求主机名,需要有一个与host元素的name属性一致-->
     <Engine name="Catalina" defaultHost="localhost" debug="0">
       <!--logger中表示日志信息className为指定logger使用的类名此类必须实现 org.apache.catalina.Logger接口prefix指定log文件的前缀,suffix指定后缀,timestamp如果为true 则log文件名中加入时间-->
       <Logger className="org.apache.catalina.logger.FileLogger"
               prefix="catalina_log." suffix=".txt"
               timestamp="true"/>
    <!--Realm存放用户名密码及role数据库,className指定Realm使用的类名必须实现org.apache.catalina.Realm接口-->
       <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
                  debug="0" resourceName="UserDatabase"/>
        <!--host中name是指定的主机名或ip,appBase应用程序目录,unpackWARs如果为true则会自动解压war文件直接运行否则不解压-->
   <Host name="192.168.4.247" debug="0" appBase="D:/project/hbgs_dddu/webapps"
        unpackWARs="true" autoDeploy="true"
        xmlValidation="false" xmlNamespaceAware="false">
   <!--logger中表示日志信息className为指定logger使用的类名此类必须实现 org.apache.catalina.Logger接口prefix指定log文件的前缀,suffix指定后缀,timestamp如果为true 则log文件名中加入时间-->
         <Logger className="org.apache.catalina.logger.FileLogger"
                  directory="logs"   prefix="localhost_log.zx" suffix=".txt"
             timestamp="true"/>
   <!--Context一个web应用程序通常为war文件,关于war的具体信息见servlet规范,docBase应用程序的路径或者war 文件的存放路径,path表示此web程序的url前缀,reloadable如果为true,Tomcat会自动检测应用程序的变化,自动装载新的应用程序,那么改变代码将不用再次重新启动tomcat-->
   <Context path="" docBase="D:/project/hbgs_dddu/webapps" debug="0" reloadable="true"/>
   </Host>
     </Engine>
   </Service>
</Server>

 

 

 

转载地址:http://edu.codepub.com/2010/0622/23684.php

 

 

 

默认参数不适合生产环境使用,因此需要修改一些参数

 

1、修改启动时内存参数、并指定JVM时区 (在windows server 2008 下时间少了8个小时):

 

在Tomcat上运行j2ee项目代码时,经常会出现内存溢出的情况,解决办法是在系统参数中增加系统参数: 

 

window下, 在catalina.bat最前面:
set JAVA_OPTS=-XX:PermSize=64M -XX:MaxPermSize=128m -Xms512m -Xmx1024m;-Duser.timezone=GMT+08;
一定加在catalina.bat最前面。

 

linux下,在catalina.sh最前面增加:

JAVA_OPTS="-XX:PermSize=64M -XX:MaxPermSize=128m -Xms512m -Xmx1024m -Duser.timezone=Asia/Shanghai"

 

注意:前后二者区别,有无set,有无双引号。

 

 

2、线程池配置(Tomcat6下)

使用线程池,用较少的线程处理较多的访问,可以提高tomcat处理请求的能力。使用方式:

首先。打开/conf/server.xml,增加

<Executor name="tomcatThreadPool" namePrefix="catalina-exec-"
        maxThreads="500" minSpareThreads="20" maxIdleTime="60000" />

最大线程500(一般服务器足以),最小空闲线程数20,线程最大空闲时间60秒。

然后,修改<Connector ...>节点,增加executor属性,如:

<Connector executor="tomcatThreadPool"
               port="80"

protocol="HTTP/1.1"

maxThreads="600"

minSpareThreads="100"

maxSpareThreads="300"
               connectionTimeout="60000"
               keepAliveTimeout="15000"
               maxKeepAliveRequests="1"
               redirectPort="443"
               ....../>

maxThreads:Tomcat可创建的最大的线程数,每一个线程处理一个请求;

minSpareThreads:最小备用线程数,tomcat启动时的初始化的线程数;

maxSpareThreads:最大备用线程数,一旦创建的线程超过这个值,Tomcat就会关闭不再需要的socket线程;

acceptCount:指定当所有可以使用的处理请求的线程数都被使用时,可以放到处理队列中的请求数,就是被排队的请求数,超过这个数的请求将拒绝连接。

connnectionTimeout:网络连接超时,单位:毫秒。设置为0表示永不超时,这样设置有隐患的。通常可设置为30000毫秒。
enableLookups:是否允许DNS查询

 

注意:可以多个connector公用1个线程池。

 

3、调整连接相关Connector的参数:

<Connector executor="tomcatThreadPool"
               port="80" protocol="HTTP/1.1"
               connectionTimeout="60000"
               keepAliveTimeout="15000"
               maxKeepAliveRequests="1"
               redirectPort="443"
               maxHttpHeaderSize="8192" URIEncoding="UTF-8" enableLookups="false" acceptCount="100" disableUploadTimeout="true"/>

 

参数说明:

  • connectionTimeout - 网络连接超时,单位:毫秒。设置为0表示永不超时,这样设置有隐患的。通常可设置为30000毫秒。
  • keepAliveTimeout - 长连接最大保持时间(毫秒)。此处为15秒。
  • maxKeepAliveRequests - 最大长连接个数(1表示禁用,-1表示不限制个数,默认100个。一般设置在100~200之间) the maximum number of HTTP requests that can be held in the pipeline until the connection is closed by the server. Setting this attribute to 1 disables HTTP/1.0 keep-alive, as well as HTTP/1.1 keep-alive and pipelining. Setting this to -1 allows an unlimited number of pipelined or keep-alive HTTP requests. If not specified, this attribute is set to 100.
  • maxHttpHeaderSize - http请求头信息的最大程度,超过此长度的部分不予处理。一般8K。
  • URIEncoding - 指定Tomcat容器的URL编码格式。
  • acceptCount - 指定当所有可以使用的处理请求的线程数都被使用时,可以放到处理队列中的请求数,超过这个数的请求将不予处理,默认为10个。defines the maximum queue length for incoming connection requests when all possible request processing threads are in use. Any requests received when the queue is full are refused. The default value is 10.
  • disableUploadTimeout - 上传时是否使用超时机制
  • enableLookups - 是否反查域名,取值为:true或false。为了提高处理能力,应设置为false
  • bufferSize - defines the size (in bytes) of the buffer to be provided for input streams created by this connector. By default, buffers of 2048 bytes are provided.
  • maxSpareThreads - 做多空闲连接数,一旦创建的线程超过这个值,Tomcat就会关闭不再需要的socket线程 the maximum number of unused request processing threads that are allowed to exist until the thread pool starts stopping the unnecessary threads. The default value is 50.
  • maxThreads - 最多同时处理的连接数,Tomcat使用线程来处理接收的每个请求。这个值表示Tomcat可创建的最大的线程数。。 the maximum number of request processing threads to be created by this Connector, which therefore determines the maximum number of simultaneous requests that can be handled. If not specified, this attribute is set to 200.
  • minSpareThreads - 最小空闲线程数,Tomcat初始化时创建的线程数 the number of request processing threads that are created when this Connector is first started. The connector will also make sure it has the specified number of idle processing threads available. This attribute should be set to a value smaller than that set for maxThreads. The default value is 4.
  • minProcessors - 最小空闲连接线程数,用于提高系统处理性能,默认值为10。(用于Tomcat4中)
  • maxProcessors - 最大连接线程数,即:并发处理的最大请求数,默认值为75。(用于Tomcat4中)

备注:

Tomcat4中可以通过修改minProcessors和maxProcessors的值来控制线程数。

在Tomcat5+主要对以下参数调整
maxThreads
 Tomcat使用线程来处理接收的每个请求。这个值表示Tomcat可创建的最大的线程数。
 acceptCount
 指定当所有可以使用的处理请求的线程数都被使用时,可以放到处理队列中的请求数,超过这个数的请求将不予处理。
 connnectionTimeout
 网络连接超时,单位:毫秒。设置为0表示永不超时,这样设置有隐患的。通常可设置为30000毫秒。
 minSpareThreads
 Tomcat初始化时创建的线程数。
 maxSpareThreads
 一旦创建的线程超过这个值,Tomcat就会关闭不再需要的socket线程。  

 

 

 4、负载均衡、集群的配置

Tomcat6支持分布式部署,可以实现集群功能,提高响应能力。

 

5、

利用JMX监控Tomcat运行情况,需要手工调整启动参数,如下:

打开cataline.bat,增加一行

set JAVA_OPTS=%JAVA_OPTS% -Dcom.sun.management.jmxremote.port=10090 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.util.logging.config.file="%CATALINA_BASE%\conf\logging.properties"

 

linux下修改cataline.sh:
JAVA_OPTS="-Dcom.sun.management.jmxremote.port=10090 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.util.logging.config.file=%CATALINA_BASE\conf\logging.properties"

注意JDK\jre\lib\management\management.properties文件必须存在。

 

重新启动tomcat节点,然后用jconsole连接(此处端口wei10090)

 

6、Tomcat增加一个应用

在server.xml的Host标签中增加行

<Context displayName="OA" docBase="/app/web-apps/GACWP" path="" />

path代表上下文名称,空表示是根路径。

 

 

 

http://sosuny.iteye.com/blog/413930

分享到:
评论

相关推荐

    Tomcat server.xml配置文件详解

    Tomcat server.xml配置文件详解Tomcat server.xml配置文件详解Tomcat server.xml配置文件详解Tomcat server.xml配置文件详解Tomcat server.xml配置文件详解Tomcat server.xml配置文件详解Tomcat server.xml配置文件...

    tomcatserver.xml配置详解.pdf

    tomcatserver.xml配置详解.pdf

    基于tomcat配置文件server.xml详解

    下面小编就为大家带来一篇基于tomcat配置文件server.xml详解。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    tomcat配置文件server文件详解.pdf

    Tomcat 配置文件 server.xml 详解 Tomcat 配置文件 server.xml 是 Tomcat 服务器的核心配置文件之一,主要用于设置服务器的基本属性、端口设置、路径设置、数据源设置、用户名和密码设置、默认首页设置等。下面我们...

    Web服务器三剑客运维配置实战 Nginx+JVM+Tomcat+HTTP协议.zip

    ├─5.05 tomcat运维-server.xml配置文件注释.mp4 ├─5.06 tomcat运维-web站点部署.mp4 ├─5.07 tomcat运维-部署开源站点.mp4 ├─5.08 tomcat运维-tomcat优化.mp4 ├─5.09 tomcat运维-tomcat性能优化.mp4 ├─...

    Tomcat的配置详解中文版

    Tomcat的配置 增加一个虚拟目录 配置JSP及Servlet 配置服务器的端口 web.xml文件的设置 web.xml文件中安全性的设置 tomcat-users.xml 设置 配置日志

    Tomcat使用配置详解[参考].pdf

    配置文件 $CATALINA_HOME/conf/server.xml 描述了如何启动 Tomcat Server。该文件内容如下所示: ``` &lt;Server port="8005" shutdown="SHUTDOWN" debug="0"&gt; &lt;!-- Listener ??? 目前没有看到这里--&gt; ...

    Tomcat 配置与优化方案详解

    Server.xml配置文件用于对整个容器进行相关的配置。 &lt;Server&gt;元素: 是整个配置文件的根元素。表示整个Catalina容器。 属性: className:实现了org.apache.catalina.Server接口的类名,标准实现类是org.apache....

    Ngxin+双tomcat负载+mem做session共享

    Tomcat集群 目录 Tomcat集群 1 一、环境介绍: 1 二、安装JDK 1 三、安装tomcat 2 四、安装nginx 2 ...6.4 修改tomcat中的server.xml文件 7 6.5放入项目文件 7 七、测试 7 八、关于tomcat的轮训模式 8

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part3

    5.5 tomcat的安装与配置 184 5.5.1 安装tomcat 185 5.5.2 运行tomcat 186 5.5.3 tomcat启动分析 189 5.5.4 tomcat的体系结构 191 5.6 tomcat的管理程序 193 5.6.1 admin web应用程序 193 5.6.2 manager web...

    tomcat参数配置[借鉴].pdf

    Tomcat的配置文件位于conf/server.xml文件中,该文件用于设置Tomcat的各种参数。例如,可以在该文件中设置JAVA_OPTS参数,以调整JVM的内存位置。 在server.xml文件中,还可以设置Connector参数,例如: ...

    Nginx服务器详解加配置教程

    目录 常见WEB服务器 1 1、Nginx简介 2 2、反向代理Web服务器的“经纪人” 2 ...4.1.2修改tomcat2中server.xml 11 4.1.3 Nginx的负载均衡的配置: 12 4.1.1 配置Tomcat的session共享可以有三种解决方案: 13

    基于tomcat的连接数与线程池详解

    在前面的文章 详解Tomcat配置文件server.xml 中写到过:Connector的主要功能,是接收连接请求,创建Request和Response对象用于和请求端交换数据;然后分配线程让Engine(也就是Servlet容器)来处理这个请求,并把...

    Tomcat目录结构详细介绍

    打开tomcat的解压之后的目录可以看到如下的目录结构: 1.Tomcat的bin目录: bin目录主要是用来存放tomcat的命令,主要...conf目录主要是用来存放tomcat的一些配置文件。 server.xml可以设置端口号、设置域名或IP、

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part2

    5.5 tomcat的安装与配置 184 5.5.1 安装tomcat 185 5.5.2 运行tomcat 186 5.5.3 tomcat启动分析 189 5.5.4 tomcat的体系结构 191 5.6 tomcat的管理程序 193 5.6.1 admin web应用程序 193 5.6.2 manager web...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part4

    5.5 tomcat的安装与配置 184 5.5.1 安装tomcat 185 5.5.2 运行tomcat 186 5.5.3 tomcat启动分析 189 5.5.4 tomcat的体系结构 191 5.6 tomcat的管理程序 193 5.6.1 admin web应用程序 193 5.6.2 manager web...

    详细介绍在tomcat中配置数据源原理

    在 Tomcat 中配置数据源,我们需要在 server.xml 文件中添加以下配置: ``` type="javax.sql.DataSource" username="username" password="password" driverClassName="oracle.jdbc.driver.OracleDriver" url=...

    java 项目发布

    该文件是 Java 项目的配置文件,用于定义项目的配置信息。例如,display-name 标签用于定义项目的名称 getDescription 标签用于定义项目的描述信息。 在 Tomcat 的 conf 文件夹中,需要注册访问项目的路径。例如,...

    CentOS6.5下Tomcat7 Nginx Redis配置步骤教程详解

    所有配置均在一台机器上完成,部署拓扑信息如下: 注意:由于Redis配置对jar包和tomcat版本比较严格,请务必使用...1. 在server.xml文件中,修改tomcat2的端口,总共需要修改3处,分别是8080、8005和8009,分别修改为90

Global site tag (gtag.js) - Google Analytics