`

Tomcat服务器配置参考之Valve组件

阅读更多

访问日志Valve

Access Log Valve用来创建日志文件,格式与标准的web server日志文件相同。可以使用用日志分析工具对日志进行分析,跟踪页面点击次数、用户会话的活动等。Access Log Valve的很多配置和行为特性与File Logger相同,包括每晚午夜自动切换日志文件。Access Log Valve可以和任何Catalina容器关联,记录该容器处理的所有请求。

 

 

Access Log Valve支持如下配置属性:

 

className

实现的Java类名。必须被设置成org.apache.catalina.valves.AccessLogValve。

directory

存放日志文件的目录,可以是相对路径或者绝对路径。如果使用相对路径,是指相对于 $CATALINA_HOME的路径。如果不指定directory属性,缺省值是“logs”(相对于 $CATALINA_HOME)

pattern

需要记录的请求/响应不同信息域的格式布局。如果是“common”或者“combine”,说明选择标准格式。下面会有关于配置这个属性的更多信息。

prefix

日志文件名的前缀。如果没有指定,缺省值是“access_log.”。如果不想使用前缀,使用长度为0的字符串。

resolveHosts

将远端主机的IP地址通过DNS查询转换成主机名,设为true。如果为false,忽略DNS查询,报告远端的IP地址。

suffix

日志文件名的后缀。如果没有指定,缺省值是“”。如果不想使用后缀,使用长度为0的字符串。

rotatable

缺省值为true,用来决定日志是否翻转的标志。如果为false,日志文件永远不翻转,并且忽略fileDataFormat。要谨慎使用。

condition

打开条件日志。如果设置了这个属性,只有在ServletRequest.getAttribute()是null的时候,才会为请求创建日志。比如,如果condition设为junk,则只有在Servlet.getAttribute("junk")==null的时候,才会记录这个请求。使用过滤器,可以很容易设置(或者取消设置)不同请求的属性。

fileDateFormat 允许在日志文件名称中使用定制的日期格式。日志的格式也决定了日志文件翻转的频率。如果想每个小时翻转一次,将这个值设为yyyy-MM-dd.HH

pattern属性值由字符串常量和pattern标识符加上前缀"%"组合而成。pattern标识符加上前缀"%",用来代替当前请求/响应中的对应的变量值。目前支持如下的pattern:

  • %a - 远端IP地址
  • %A - 本地IP地址
  • %b - 发送的字节数,不包括HTTP头,如果为0,使用"-"
  • %B - 发送的字节数,不包括HTTP头
  • %h - 远端主机名(如果resolveHost=false,远端的IP地址)
  • %H - 请求协议
  • %l - 从identd返回的远端逻辑用户名(总是返回 '-')
  • %m - 请求的方法(GET,POST,等)
  • %p - 收到请求的本地端口号
  • %q - 查询字符串(如果存在,以 '?'开始)
  • %r - 请求的第一行,包含了请求的方法和URI
  • %s - 响应的状态码
  • %S - 用户的session ID
  • %t - 日志和时间,使用通常的Log格式
  • %u - 认证以后的远端用户(如果存在的话,否则为'-')
  • %U - 请求的URI路径
  • %v - 本地服务器的名称
  • %D - 处理请求的时间,以毫秒为单位
  • %T - 处理请求的时间,以秒为单位

Access Log Valve还可以记录cookie,消息头,Session或者ServletRequest中的信息。使用与apache类似的语法:

  • %{xxx}i 消息头
  • %{xxx}c 特定的cookie
  • %{xxx}r xxx 是ServletRequest中的某个属性
  • %{xxx}s xxx 是HttpSession中的某个属性

上面提到"common"模式(也是缺省的模式)实际上是"%h %l %u %t "%r" %s %b"的一种简单表示方法

"common"模式后面加上"Referer"和用户代理头(User-Agent headers)的信息,就是前面提到的"combined"模式。

 

远端地址过滤器(Remote Address Filter)

远端地址过滤器将发起请求的客户端的IP地址和一个或多个正则表达式进行比较,以决定接受或者拒绝这个请求。远端地址过滤器可以嵌套在任何Catalina容器中(Engine,Host或者Contxt)。在过滤器起作用之前,容器必须接受所有的请求。

远端地址过滤器支持如下的配置属性:

 

className 实现的Java类名,必须设置成org.apache.catalina.valves.RemoteAddrValve
allow

用逗号分开的一串正则表达式,客户端的IP地址与这些正则表达式进行比较。如果指定了这个属性,客户端的地址必须匹配这些表达式,其请求才会被处理。如果没有指定这个属性,所有的请求都被接受,除非客户端地址匹配了一个deny模式。

deny

用逗号分开的一串正则表达式,客户端的IP地址与这些正则表达式进行比较。如果指定了这个属性,客户端的地址一定不能匹配这些表达式,其请求才会被接受。如果没有指定这个属性,仅仅由"accept“属性决定是否接受这个请求。

 

远端主机过滤器(Remote Host Filter)

远端主机过滤器将发起请求的客户端的主机名和一个或者多个正则表达式进行比较,以决定接受或者拒绝这个请求。远端主机过滤器可以嵌套在任何Catalina容器中(Engine,Host或者Context)。在过滤器起作用之前,容器必须接受所有的请求。

远端主机过滤器支持如下属性:

 

className

实现的Java类名,必须设为org.apache.catalina.valves.RemoteHostValve.

allow

用逗号分开的一串正则表达式,客户端的主机名与这些正则表达式进行比较。如果指定了这个属性,客户端的主机名必须匹配这些表达式,其请求才会被处理。如果没有指定这个属性,所有的请求都被接受,除非客户端主机名匹配了一个deny模式。

deny 用逗号分开的一串正则表达式,客户端的主机名与这些正则表达式进行比较。如果指定了这个属性,客户端的主机名一定不能匹配这些表达式,其请求才会被接受。如果没有指定这个属性,仅仅由"accept“属性决定是否接受这个请求。

 

Request Dumper Valve

Request Dumper Valve在调试与客户端的交互非常有用。如果配置,它会利用容器(Engine,Host或者Context)的Logger记录下每个请求的详细信息。

Request Dumper Valve支持如下配置属性:

 

className

实现的Java类名,必须设为org.apache.catalina.valves.RequestDumperValve.

 

单次登录Valve(Single Sign On Valve

如果希望用户可以登录到虚拟主机中的任意一个web应用,而且登录以后所有其他的web应用都能使用用户的身份信息(即不需要重新登录),就可以使用单次登录Valve。

在Host元素中有更多关于单次登录Valve的信息。

单次登录Valve支持如下的配置属性:

className

实现的Java类名,必须设为:org.apache.catalina.authenticator.SingleSignOn.

debug

这个组件的调试信息的详细程度,缺省值为0,即没有调试输出。

分享到:
评论

相关推荐

    tomcat服务器的配置详解

    《深入解析Tomcat服务器配置》 Tomcat作为一款广泛应用的Java EE服务器,其配置的精细程度直接影响到应用程序的性能和稳定性。本文将详尽解析Tomcat的配置文件`server.xml`,并阐述其中的关键参数和配置结构。 ...

    Tomcat 服务器7.0版本

    这个版本是Tomcat服务器的一个重要里程碑,引入了许多改进和新特性,旨在提高性能、安全性和稳定性。 首先,Tomcat 7.0遵循Java Servlet 3.0和JavaServer Pages (JSP) 2.2规范。Servlet 3.0引入了注解配置,允许...

    Tomcat 结构概述

    Tomcat 服务器的整体架构是由一系列可配置的组件构成的,其核心组件是 Catalina Servlet 容器,它是所有其他 Tomcat 组件的顶层容器。Tomcat 的组件可以在(conf/server.xml 文件中进行配置,每个 Tomcat 组件在 ...

    Tomcat的服务器配置文件server.xml讲解.pdf

    在server.xml中,可以通过对这些组件的配置来实现对Tomcat服务器的精细控制。例如,可以添加多个Connector来支持不同类型的连接(比如HTTP和AJP),也可以定义多个Host来处理不同的虚拟主机请求,而每个Context则...

    Tomcat伺服器實務

    【标题】"Tomcat伺服器實務"涵盖了关于Apache Tomcat服务器的多个核心知识点,包括其安装、配置、与数据库的集成以及安全性设置等。Tomcat是一款广泛应用的开源Web容器,它实现了Java Servlet和JavaServer Pages...

    tomcat工作原理-组件

    7. **Pipeline和Valve组件** Pipeline是Tomcat内部处理请求的流水线,而Valve则是Pipeline中的处理节点。每个Valve执行一部分任务,如身份验证、访问控制、日志记录等。Valves可以串联起来,形成一个处理链。 8. *...

    tomcat 配置文件 server.xml配置

    在探讨`server.xml`配置文件之前,让我们先明确一点:`server.xml`是Apache Tomcat服务器的核心配置文件,它控制着Tomcat的启动、运行和停止过程。对于任何希望深入理解和优化Tomcat性能的开发者来说,熟悉并掌握`...

    tomcatserver.xml配置详解.pdf

    根据提供的文件信息,可以看出文档内容是关于Tomcat服务器的配置文件server.xml的详细解读。server.xml是Tomcat中的核心配置文件,负责配置整个服务器的运行参数和连接器信息。下面将对Tomcat server.xml中可能包含...

    Tomcat 接口文档 API

    **Tomcat接口文档API详解** ...同时,实践操作,例如配置Tomcat服务器、部署Web应用、调试自定义组件等,也是提升技能的关键步骤。通过这些努力,开发者可以充分利用Tomcat的强大功能,构建高效、稳定的Web服务。

    tomcat虚拟机配置

    标题中的“Tomcat虚拟机配置”指的是在Apache Tomcat服务器中设置多个独立的虚拟主机,以便在同一台服务器上运行多个不同的Web应用。Tomcat作为一款流行的开源Java Servlet容器,经常被用于开发和部署Web应用程序。...

    Tomcat8 session同步测试,配置好的Tomcat

    2. 在两台或多台Tomcat服务器上部署该应用,配置好集群设置。 3. 通过浏览器访问应用,设置session变量。 4. 切换到不同的服务器,检查session变量是否仍然存在且值未改变。 如果一切配置正确,用户在一台服务器上...

    tomcat server.xml配置详解

    在深入探讨Tomcat服务器的`server.xml`配置文件之前,我们先简要了解下Tomcat。Apache Tomcat是一个开源的Servlet容器,主要用来运行Java Servlet和JavaServer Pages(JSP)。`server.xml`是Tomcat的核心配置文件,...

    Tomcat下配置AWSTATS.pdf

    通过以上步骤,你可以在Tomcat环境中成功配置AWStats,实现对服务器日志的高效分析。记得定期更新AWStats和依赖组件,以保持最新的功能和安全性。此外,你还可以根据需求调整AWStats的报告间隔、统计内容以及展示...

    tomcat配置

    以上只是Tomcat配置和使用的一些基础内容,深入学习还包括与其他服务器的整合、自定义 Valve 组件、管理工具的使用等高级主题。熟悉这些知识点,将有助于开发者更好地驾驭Tomcat,构建高质量的Java Web应用。

    tomcat常用配置

    **Tomcat 常用配置详解...了解并熟练掌握这些配置,能帮助你更好地管理和优化Tomcat服务器,确保Web应用的稳定性和高效性。对于开发者而言,理解这些配置不仅有助于日常开发,也有助于在遇到问题时进行快速定位和解决。

    各类服务器下虚拟目录配置

    - **Valve**:Tomcat服务器中的组件,负责处理请求生命周期中的不同阶段,例如日志记录、认证等。 ### §3 应用指南 #### §3.1 Tomcat6 下虚拟目录配置 在Tomcat6中,虚拟目录的配置主要通过编辑`server.xml`...

    tomcat7.0.63免安装版(已配置跨域)

    【标题】"Tomcat7.0.63免安装版(已配置跨域)" 提供的是一个方便JavaWeb开发者使用的Tomcat服务器版本,它已经预先配置了允许跨域访问的功能,无需用户自行设置。 【描述】中提到的"apache-tomcat-7.0.63"是Apache...

    tomcat_server.xml_配置详解.doc

    《深入解析Tomcat Server.xml配置文件》 在Java Web应用的开发与部署中,Apache Tomcat作为一款开源的Servlet容器,扮演着至关重要的角色。它的灵活性和可定制性,很大程度上依赖于`server.xml`配置文件。本文将对`...

    TOMCAT6.0 64服务器

    【标题】"TOMCAT6.0 64服务器"主要指的是Apache Tomcat服务器的6.0版本,专为64位操作系统设计。Tomcat是一款开源的Java Servlet容器,它实现了JavaServer Pages (JSP)、Servlet以及Java EE的Web应用程序的部署和...

Global site tag (gtag.js) - Google Analytics