Tomcat 7 简单定制

Tomcat笔记

安装
wget https://mirrors.huaweicloud.com/apache/tomcat/tomcat-7/v7.0.96/bin/apache-tomcat-7.0.96.tar.gz
tar zxvf apache-tomcat-7.0.96.tar.gz
cd apache-tomcat-7.0.96/bin
./startup.sh
配置文件

8005端口是关闭tomcat进程所用。当执行shutdown.sh关闭tomcat时就是连接8005端口执行“SHUTDOWN”命令--由此,我们直接telnet8005端口执行“SHUTDOWN”也可以成功关闭tomcat.

<Server port="8005" shutdown="SHUTDOWN">

由于我们通常使用 kill -9 pid, 改为

<Server port="-1" shutdown="SHUTDOWN">

tomcat7 默认使用bio,现修改为 nio

<Connector port="8080" protocol="HTTP/1.1"

改为

<Connector executor="tomcatThreadPool" port="8080" protocol="org.apache.coyote.http11.Http11NioProtocol"

8009:apache httpd 反向代理tomcat时就可以使用使用ajp协议反向代理到该端口由于我们使用 Nginx 代理 tomcat,所以注释掉

<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

改为

<!-- Connector port="8009" protocol="AJP/1.3" redirectPort="8443" /> -->
Tomcat 日志优化

默认情况下,Tomcat会产生这些日志

catalina.2019-08-16.log	#tomcat运行的一些日志,这些日志还会输出到catalina.out,没用
catalina.out #tomcat的标准输出(stdout)和标准出错(stderr),非常重要,保留
host-manager.2019-08-16.log #虚拟主机日志,没用
localhost.2019-08-16.log #程序异常没有被捕获的时候抛出的地方,如内存溢出,比较重要,保留
localhost_access_log.2019-08-16.txt #tomcat访问日志记录,没用
manager.2019-08-16.log # 管理日志,没用

日志级别

SEVERE (highest value) > WARNING > INFO > CONFIG > FINE > FINER > FINEST (lowest value)

以 catalina.out 为例:

设置日志级别

1catalina.org.apache.juli.FileHandler.level = FINE

禁用日志

1catalina.org.apache.juli.FileHandler.level = OFF

输出所有

1catalina.org.apache.juli.FileHandler.level = ALL

以下为 Tomcat7 的 logging.properties 例子

[root@tomcat1 conf]# egrep -v "^#|^$" logging.properties
handlers = 1catalina.org.apache.juli.FileHandler, 2localhost.org.apache.juli.FileHandler, 3manager.org.apache.juli.FileHandler, 4host-manager.org.apache.juli.FileHandler, java.util.logging.ConsoleHandler
.handlers = 1catalina.org.apache.juli.FileHandler, java.util.logging.ConsoleHandler
1catalina.org.apache.juli.FileHandler.level = FINE
1catalina.org.apache.juli.FileHandler.directory = ${catalina.base}/logs
1catalina.org.apache.juli.FileHandler.prefix = catalina.
1catalina.org.apache.juli.FileHandler.encoding = UTF-8
2localhost.org.apache.juli.FileHandler.level = FINE
2localhost.org.apache.juli.FileHandler.directory = ${catalina.base}/logs
2localhost.org.apache.juli.FileHandler.prefix = localhost.
2localhost.org.apache.juli.FileHandler.encoding = UTF-8
java.util.logging.ConsoleHandler.level = FINE
java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter
java.util.logging.ConsoleHandler.encoding = UTF-8

关闭 localhost_access_log.2019-08-16.txt,修改 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" /> -->

效果如下:

catalina.2019-09-06.log
localhost.2019-09-07.log
catalina.out

日志处理,由于catalina.out日志时间长了会变得很大,需要定时切割。

这里我们使用 lograte 工具

[root@tomcat1 logrotate.d]# cat live 
/data/tomcat/live/logs/catalina.out {
daily
dateext
rotate 3
missingok
copytruncate
compress
}

注释:

daily #每天进行
dateext #每天执行一次,同时转储旧日志时用日期格式"YYMMDD"代替简单的数字作为标记
rotate 3 #只保留3个副本
missingok #如果要轮转的文件丢失了,继续轮转而不报错
copytruncate #创建新的catalina.out副本后,截断源catalina.out文件
compress #压缩

posted @ 2019-09-11 09:39  海口-熟练工  阅读(240)  评论(0编辑  收藏  举报