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 #压缩

最新文章

  1. Elasticsearch多索引
  2. pythonhttp
  3. 使用Mou 编写Markdown编辑器博客
  4. 【转载】C# Tutorial - Simple Threaded TCP Server
  5. Light OJ 1005 - Rooks(DP)
  6. 獲取 Textarea 的光標位置(摘自網絡)
  7. CF 192 DIV.2
  8. UDA机器学习基础—交叉验证
  9. Linux管道编程实例
  10. php中的抽象方法和抽象类,简单明了,一点通
  11. [转]PuTTY字体颜色设置
  12. Left Join on 多条件查询时,条件过滤的问题
  13. linux防火墙,高级策略策略实例详解(实例一)
  14. Android JNI 增强应用程序性能
  15. Java中的权限学习笔记
  16. delphi 控件编辑器
  17. Win7/8/10十个最强大通用快捷键
  18. h5实现手机端等级进度条
  19. python第二十四课——set中的函数
  20. 深度学习国外课程资料(Deep Learning for Self-Driving Cars)+(Deep Reinforcement Learning and Control )

热门文章

  1. Postman配置环境变量添加token
  2. Vue对象提供的属性功能
  3. LeetCode刷题7——数字的补数
  4. LeetCode刷题4——子集
  5. 【C/C++开发】__stdcall,__cdecl,__fastcall的区别
  6. Lua字符串及模式匹配
  7. 基于SpringBoot从零构建博客网站 - 整合ehcache和开发注册登录功能
  8. JavaScript引用类型简单记录
  9. 虚拟机ubuntu连不上网
  10. DRF 序列化组件 序列化的两种方式 反序列化 反序列化的校验