`
收藏列表
标题 标签 来源
tomcat tomcat
<Server port="8005" shutdown="SHUTDOWN" debug="0">
<!-- 这些指令组件关闭JMX MBeans支持 -->
<!-- 你也可以通过包含你自己的mbean描述文件配置自定义的组件,然后设置
“descriptors”属性为以“;”为分隔的文件名列表严将它添加到默认列表
中,例如:descriptors="/.../mbean-descriptor.xml"。
-->

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

<!-- Global JNDI resources -->
<!-- 全局JNDI资源 -->
<GlobalNamingResources>
<!-- 出于示例目的的测试入口 -->
<Environment name="simpleValue" type="java.lang.Integer" value="30" />
<!-- 可编辑的,用来通过UserDatabaseRealm认证用户的用户数据库 -->
<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>org.apache.catalina.users.MemoryUserDatabaseFactory</value>
</parameter>
<parameter>
<name>pathname</name>
<value>conf/tomcat-users.xml</value>
</parameter>
</ResourceParams>
</GlobalNamingResources>

<!-- 一个“Service”是一个或多个共用一个单独“Container”(容器)的“Connectors”
组合(因此,应用程序在容器中可见)。通常,这个容器是一个“Engine”
(引擎),但这不是必须的。
注意:一个“Service”自身不是一个容器,因此,在这个级别上你不可定义
诸如“Valves”或“Loggers”子组件。
-->

<!-- 定义Tomcat的标准独立服务 -->
<Service name="Catalina">
<!-- 一个“Connector”(连接器)代表一个请求被接收和应答所需要的端点。每个连
接器通过相关的“Container”(容器)处理请求。

默认情况下,一个非SSL的HTTP/1.1的连接器被绑定在端口8080。你也可以通过
根据后面的使用说明并取消第二个连接器入口的注释,在端口8443上建立一个
SSL HTTP/1.1的连接器。开放SSL支持需要下面几步(参见Tomcat 5文档中怎样
配置SSL的说明以取得更多的详细信息):
* 如果你的JDK是1.3或1.3以前的版本,下载安装JSSE 1.0.2或以后版本,并放
置JAR文件到“$JAVA_HOME/jre/lib/ext”目录下。
* 带一个“changeit”的口令值执行:
%JAVA_HOME%\bin\keytool -genkey -alias tomcat -keyalg RSA (Windows)
$JAVA_HOME/bin/keytool -genkey -alias tomcat -keyalg RSA (UNIX)
来生成它自己的证书私钥。

默认情况下,当一个web应用程序调用请求时,DNS查询是可行的。这将对性能造
成一些不利的影响,因此,你可以将“enableLookups”设置为“false”来关闭DNS
查询。当DNS查询被关闭时,request.getRemoteHost()将返回包含远程客户IP地
址的字符串。
-->

<!-- 在8080端口上定义一个非SSL的HTTP/1.1连接器 -->
<Connector port="8080" maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
debug="0" connectionTimeout="20000" disableUploadTimeout="true" />
<!-- 注意,要关闭连接超时,将connectionTimeout设置为0 -->

<!-- 注意:要使用gzip压缩需要设置如下属性:
compression="on"
compressionMinSize="2048"
noCompressionUserAgents="gozilla,traviata"
compressableMimeType="text/html,text/xml"
-->

<!-- 在端口8443上定义一个SSL的HTTP/1.1的连接器 -->
<!--
<Connector port="8443"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" disableUploadTimeout="true"
acceptCount="100" debug="0" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS" />
-->

<!-- 在端口8009上定义一个Coyote/JK2 AJP 1.3连接器 -->
<Connector port="8009" enableLookups="false" redirectPort="8443"
debug="0" protocol="AJP/1.3" />
<!-- 在8082端口上定义一个代理HTTP/1.1连接器 -->
<!-- 参见代理文档以取得这里使用属性的更多的信息。 -->
<!--
<Connector port="8082"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false"
acceptCount="100" debug="0" connectionTimeout="20000"
proxyPort="80" disableUploadTimeout="true" />
-->

<!-- 一个“Engine”(引擎)代表处理每个请求的入口点(在Catalina内)。这个Tomcat
的标准独立引擎实现分析包含在请求中的HTTP头信息,并将请求传送到适当的主机
或虚拟主机上。-->
<!-- 你应该这样设置jvmRoute以便在JK/JK2通道上支持负载平衡:
<Engine name="Standalone" defaultHost="localhost" debug="0" jvmRoute="jvm1">
-->

<!-- 在我们的容器体系中定义最高级别的容器 -->
<Engine name="Catalina" defaultHost="localhost" debug="0">

<!-- 请求转储器值转储非常有用的通过Tomcat这个实例接收到的所有请求的,关于
接收到的请求头和cookies,以及发送出的回应头和cookies的调试信息。如果
你只在意一个特定的虚拟主机或者一个特定应用程序的请求,在对应的<Host>
或<Context>入口中套用这个元素。

对于所有的Servlet(小服务程序)2.4来所,在示例程序中检验
“RequestDumperFilter”过滤是非常容易的(这个过滤器源代码可以在
“$CATALINA_HOME/webapps/examples/WEB-INF/classes/filters”下找到。

请求转储默认情况下是关闭的,如果要使用它,取消下面行的注释符。-->
<!--
<Valve className="org.apache.catalina.valves.RequestDumperValve"/>
-->

<!-- 全局日志设置,除非在更低的级别上覆盖它的设置 -->
<Logger className="org.apache.catalina.logger.FileLogger"
prefix="catalina_log." suffix=".txt" timestamp="true" />

<!-- 因为这个Realm(区域)在这儿,因此这个实例将被全局共享。 -->
<!-- 这个Realm(区域)使用在全局JNDI资源下,由“UserDatabase”配置的用户
数据库。通过使用Realm将使对于这个用户数据库的任何编辑都将会立即可用
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
debug="0" resourceName="UserDatabase"/>-->

<!-- 注释掉旧有的Realm以便我们能很快速的恢复旧有配置。 -->
<!--
<Realm className="org.apache.catalina.realm.MemoryRealm" />
-->

<!-- 下面的属性用于从储存在数据库或从JDBC通道中得到的Realm以取代上面的
Realm配置。-->
<!--
<Realm className="org.apache.catalina.realm.JDBCRealm" debug="99"
driverName="oracle.jdbc.driver.OracleDriver"
connectionURL="jdbc:oracle:thin:@ntserver:1521:ORCL"
connectionName="scott" connectionPassword="tiger"
userTable="users" userNameCol="user_name" userCredCol="user_pass"
userRoleTable="user_roles" roleNameCol="role_name" />
-->

<!--
<Realm className="org.apache.catalina.realm.JDBCRealm" debug="99"
driverName="sun.jdbc.odbc.JdbcOdbcDriver"
connectionURL="jdbc:odbc:CATALINA"
userTable="users" userNameCol="user_name" userCredCol="user_pass"
userRoleTable="user_roles" roleNameCol="role_name" />
-->

<!-- 定义默认的虚拟主机
注意:XML模式确认将不能与Xerces 2.2同工作。
-->
<Host name="localhost" debug="0" appBase="webapps" unpackWARs="true"
autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">

<!--
为这个结点定义一个群集,通过定义这个元素,意味着每个管理员都将被改变。
因此,当运行一个群集时,只有确认在必须被聚集和移除其他的地方有你的
web软件。
一个群集有下面这些参数:
className = 这个群集类的全限定名
name = 你的群集的描述名,可以是任何描述
debug = 调试级别,更高意味着更多的输出
mcastAddr = 多播地址,所有的节点都必须有同样的多播地址
mcastPort = 多播端口,对所有的节点都必须有同样的多播端口
mcastBindAddr = 绑定多播套接字到一个指定的地址
mcastTTL = 多播生存期,如果你想要限制你的广播的话
mcastSoTimeout = 多播读取超时
mcastFrequency = 发送“I'm alive”(我还活着)信息的间隔毫秒数
mcastDropTime = 多长时间没有收到“I'm alive”就将这个节点标识为死节点(单位:毫秒)
tcpThreadCount = 用于处理重复引入请求的线程数,最好是每个节点都有相同的线程数
tcpListenAddress = 在有多块以太网卡的主机上的监听TCP群集请求的地址(绑定地址),auto意味着地址由InetAddress.getLocalHost().getHostAddress()取得。
tcpListenPort = tcp监听端口
tcpSelectorTimeout = 在操作系统中有java.nio唤醒错的情况下,使用Selector.select()的超时
毫秒数。设为0则没有超时限制
printToScreen = true意味着管理员的相关信息也将打印输出到std.out
expireSessionsOnShutdown = true 意味着
useDirtyFlag = true意味着我们只能在调用setAttribute,removeAttribute后才能复制一个会话;
false意味着在每个请求后复制会话。
false意味着复制将以下列代码方式工作:
<%
HashMap map = (HashMap)session.getAttribute("map");
map.put("key","value");
%>

replicationMode = 可以是“pooled”、“synchronous”或者“asynchronous”
* Pooled意味着在多个套接字上同步进行复制。例如,先复制数据,然后请求返回。
这与“synchronous”相同,除了它使用一个套接字池,因此,它是多线程的。它是
最快和最高级的设置,使用这个配置也增加了处理复制的tcp线程的域。
* Synchronous指执行请求的线程,它也是向其他节点复制数据的线程,并且直到
所有的节点都己经收到信息后才返回。
* Asynchronous,对每个群集节点而言,这是一个特别的“sender”(发送者)线程,
因此请求线程将复制请求排队到一个小队列中,然后,返回给用户。
这个小队列是一个当会话被添加到队列中,而从先前的请求中,同一个会话己经存在
,这个会话将被放置在队列中以代替重复的两个请求。这几乎从不会发生,除非存在
较大的网络延迟。
-->
<!-- 当配置群集时,你也添加一个值来捕获所有传入的请求,在请求结束时,这个会话可能被子复制,
也可能不被复制。一个会话是否复制取决于下列条件是否发生:
1. useDirtyFlag为真,或者setAttribute或者removeAttribute己经被调用。
2. 会话己经存在(己经被创建了)。
3. 请求没有被“filter”属性所捕获。

这个filter(过滤器)属性用于过滤那些不能修改会话的请求,因此,我们在这个请求结束后不复制
会主。这个过滤器是消极的,例如,你向过滤器发送了一些东西,然后被过滤出去,在那个匹配的过
滤器上不会发生复制。
过滤器属性以分号为分隔,因此你不能换行,即使你想这么做。

filter=".*\.gif;.*\.js;"意味着在进行以.gif和.js结束的URI请求后不复制会话。
-->
<!--
<Cluster className="org.apache.catalina.cluster.tcp.SimpleTcpCluster"
managerClassName="org.apache.catalina.cluster.session.DeltaManager"
expireSessionsOnShutdown="false"
useDirtyFlag="true">

<Membership
className="org.apache.catalina.cluster.mcast.McastService"
mcastAddr="228.0.0.4"
mcastPort="45564"
mcastFrequency="500"
mcastDropTime="3000"/>

<Receiver
className="org.apache.catalina.cluster.tcp.ReplicationListener"
tcpListenAddress="auto"
tcpListenPort="4001"
tcpSelectorTimeout="100"
tcpThreadCount="6"/>

<Sender
className="org.apache.catalina.cluster.tcp.ReplicationTransmitter"
replicationMode="pooled"/>

<Valve className="org.apache.catalina.cluster.tcp.ReplicationValve"
filter=".*\.gif;.*\.js;.*\.jpg;.*\.htm;.*\.html;.*\.txt;"/>
</Cluster>
-->
<!-- 通常,对每一个应用程序,用户必须逐个的认证他们自己。当他们遇到被
某种安全约束所保护的资源时,如果你想让用户只在第一次被认证,那么,
取消下面入口行的注释,然后在这个虚拟主机中包含这个用户的,横跨所有
web应用程序的用户身份识别。-->

<!--
<Valve className="org.apache.catalina.authenticator.SingleSignOn"
debug="0"/>
-->

<!-- 这个虚拟主机的所有请求的访问日志过程。默认情况下,日志文件被创建在相对
于$CATALINA_HOME目录下的logs目录下。通过directory属性,你也可以指定一个
不同的目录,如果你想的话。可以使用相对路径(相对于$CATALINA_HOME),也
可以使用绝对路径。-->
<!--
<Valve className="org.apache.catalina.valves.AccessLogValve"
directory="logs" prefix="localhost_access_log." suffix=".txt"
pattern="common" resolveHosts="false"/>
-->

<!-- 与这个虚拟主机有关系所有上下文所共享的日志。默认情况下(使用FileLogger时),
日志文件被创建在相对于$CATALINA_HOME目录下的logs目录下。如果你希望,你也可
以给directory指定一个不同的路径。可以使用相对于$CATALINA_HOME的相对路径,也
可以使用绝对路径。-->
<Logger className="org.apache.catalina.logger.FileLogger" directory="logs"
prefix="localhost_log." suffix=".txt" timestamp="true" />

<!-- debug为设定debug的等级,0提供信息最少;9提供信息最多;
reloadable=true时,当web.xml或者class有改动的时候,都会重新加载,不需要重启服务
crosssContext=true表示,允许穿透ServletContext.getContext()存储-->
<Context path="web上下文路径" docBase="虚拟目录路径" reloadable="true" debug="0" crossContext="true"></Context></Host>
</Engine>
</Service>
</Server>
 
Global site tag (gtag.js) - Google Analytics