设为首页 收藏本站
查看: 804|回复: 0

[经验分享] Tomcat服务器配置参考之Valve组件

[复制链接]

尚未签到

发表于 2017-2-8 07:57:59 | 显示全部楼层 |阅读模式
  访问日志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,即没有调试输出。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-338968-1-1.html 上篇帖子: tomcat 5.5 / 6.0 数据库连接池配置 下篇帖子: tomcat在启动的时候找不到ContextLoaderPlugIn
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表