【tomcat】日志、连接限制、Tomcat Users

来源:互联网 发布:软件数据与金蝶对接 编辑:程序博客网 时间:2024/06/05 18:46

双休,周五,一觉醒来不知道应该做点什么,干脆整理下文档吧。


在${catalina.base}目录中有个conf文件夹,这里面包含了tomcat的配置文件,大致分析下tomcat的配置
本文大致谈论下日志、版本信息、连接限制、用户的配置
使用的tomcat版本为7.0.63


日志

Tomcat日志分为两种:运行日志访问日志
运行日志主要记录项目运行中的各种信息,尤其是一些错误信息。
访问日志是记录来访者的信息,包括来访者的IP、时间、访问的资料等相关信息。


运行日志

运行日志和访问日志。运行日志主要记录项目运行中的各种信息,尤其是一些错误信息。

类型

catalina、manager、localhost、host-manger
四个权限类型,分为对应不同的tomcat用户。tomcat用户会在后面简述。


级别

SEVERE (highest value) > WARNING > INFO > CONFIG > FINE > FINER > FINEST (lowest value)
一般都是配置为FINE


配置

在文件${catalina.base}/config/loggin.properties中修改配置。
日志属性配置:

##日志等级分为FINE、OFF、ALL2localhost.org.apache.juli.FileHandler.level = FINE##日志的目录2localhost.org.apache.juli.FileHandler.directory = ${catalina.base}/logs##日志输出前缀,后面跟日期信息(yyyy-MM-dd)##tomcat_6.0.29输出4种不同的日志2localhost.org.apache.juli.FileHandler.prefix = localhost.

配置level时,除了上面的七个级别外,OFF代表禁用日志,ALL表示所有等级。

日志文件的输出级别和处理类:

org.apache.catalina.core.ContainerBase.[Catalina].[localhost].level = INFOorg.apache.catalina.core.ContainerBase.[Catalina].[localhost].handlers= 2localhost.org.apache.juli.FileHandler

控制台日志输出:

#控制台日志输出级别java.util.logging.ConsoleHandler.level = FINE #控制台日志输出格式化类,Formatter 为格式化 LogRecords 提供支持。java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter 

输出样式修改

使用log4j和common-logging搭配输出更详细的日志。详情点击这里 –> 参考文章


小结:

  • 运行日志对应不同的用户权限,平时我们在eclipse中默认使用的是localhost用户。
  • 通过tomcat的manager页面登录不同权限用户后,会形成不同的操作日志(需要预先为用户配置权限,本文中会提及)。
  • 运行日志可以存放在配置的本地文件夹中,也可以在控制台打印输出显示

访问日志

记录来访者的信息,包括来访者的IP、时间、访问的资料等相关信息。

配置

在文件${catalina.base}/config/server.xml中修改配置,在中添加如下代码:

<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" />

参数解释:

  • Directory:日志存放目录
  • Prefix:日志名称的前缀
  • Suffix:存储格式
  • Pattern:日志内容格式,分为common和combined,以及自定义设置。

Patten值的详细解释:

%a – 远程主机的IP (Remote IP address) %A – 本机IP (Local IP address) %b – 发送字节数,不包含HTTP头,0字节则显示 ‘-’ (Bytes sent, excluding HTTP headers, or ‘-’ if no bytes were sent) %B – 发送字节数,不包含HTTP头 (Bytes sent, excluding HTTP headers) %h – 远程主机名 (Remote host name) %H – 请求的具体协议,HTTP/1.0 或 HTTP/1.1 (Request protocol) %l – 远程用户名,始终为 ‘-’ (Remote logical username from identd (always returns ‘-’)) %m – 请求方式,GET, POST, PUT (Request method) %p – 本机端口 (Local port) %q – 查询串 (Query string (prepended with a ‘?’ if it exists, otherwise an empty string) %r – HTTP请求中的第一行 (First line of the request) %s – HTTP状态码 (HTTP status code of the response) %S – 用户会话ID (User session ID) %t – 访问日期和时间 (Date and time, in Common Log Format format) %u – 已经验证的远程用户 (Remote user that was authenticated %U – 请求的URL路径 (Requested URL path) %v – 本地服务器名 (Local server name) %D – 处理请求所耗费的毫秒数 (Time taken to process the request, in millis) %T – 处理请求所耗费的秒数 (Time taken to process the request, in seconds)  

版本信息

  • 通过catalina version命令打印tomcat信息,包含版本信息。或者进入${catalina_base}/bin执行version.bar打印信息。
  • 在${catalina_base}/RELEASE-NOTES中查找版本信息。
  • 有时在下载的tomcat源文件上,在其文件名上会有标识版本信息

连接限制

线程池和连接器在tomcat启动被加载。

线程池

在${catalina_base}/conf/server.xml中可以对线程池进行设置,一般在优化并发时可以使用线程池。
一个tomcat实例可以创建多个线程池,一个线程池可以被多个连接器共享使用。
配置:

<Executor name="tomcatThreadPool" namePrefix="catalina-exec-"        maxThreads="150" minSpareThreads="5"/>

常用参数说明:

属性名称 属性描述 className 默认值:org.apache.catalina.core.StandardThread-Executor。 name 共享线程池的名字 namePrefix 在JVM上,每个运行线程都可以有一个name 字符串。这一属性为线程池中每个线程的name字符串设置了一个前缀,Tomcat将把线程号追加到这一前缀的后面、默认值:tomcat-exec-。 maxIdleTime 在Tomcat关闭一个空闲线程之前,允许空闲线程持续的时间(以毫秒为单位)。默认值:60000(一分钟)。 maxThreads 该线程池可以容纳的最大线程数、默认值:200。 minSpareThreads Tomcat应该始终打开的最小不活跃线程数、默认值:25。 threadPriority 线程的等级。默认是Thread.NORM_PRIORITY

- 注意:查看详细属性说明,可以在${catalina_base}/webapps /docs/config/executor.html查看。


连接器

在${catalina_base}/conf/server.xml中可以对连接器进行设置,一个tomcat实例可以有多个连接器。
连接器常见配置:

<!-- 不使用线程池 --><Connector port="8080" protocol="HTTP/1.1"               connectionTimeout="20000"               redirectPort="8443" /><!-- 使用线程池 --><Connector executor="tomcatThreadPool"               port="8080" protocol="HTTP/1.1"               connectionTimeout="20000"               redirectPort="8443" />

连接器常用属性:

属性名称 属性描述 port 此连接器将创建服务器套接字并等待传入连接的TCP端口号 protocol 连接器的处理类 scheme 默认是http connectionTimeout 连接超时时间,默认是20秒 redirectPort 如果连接器支持非SSl请求,tomcat会指向指定的端口 executor 线程池的名称 SSLEnabled 启用SSL传输,默认false clientAuth 客户端的验证,true、false、wait三个可选值 sslProtocol 要使用的SSL协议,默认TLS

注意:查看详细属性说明,可以在${catalina_base}/webapps /docs/config/http.html查看。


用户

在${catalina_base}/conf/tomcat-users.xml中配置用户权限
简单配置:

<tomcat-users>    <role rolename="tomcat"/>    <role rolename="role1"/>    <role rolename="manager-gui"/>    <role rolename="admin-gui"/>    <user username="xxl" password="123456" roles="tomcat,role1,manager-gui,admin-gui"/></tomcat-users>

用户权限有多种,用户可以根据自己的需求进行设置

user,admin,analyst,developer,manager,manager-gui和rest-all

在${catalina_base}/docs/manager-howto.html中可以找到具体manager权限

名称 描述 manager-gui Access to the HTML interface. manager-status Access to the “Server Status” page only. manager-script Access to the tools-friendly plain text interface that is described in this document, and to the “Server Status” page. manager-jmx Access to JMX proxy interface and to the “Server Status” page.

注意:其它的几种权限没有找到具体解释,若有知道者,望告知。

原创粉丝点击