Tomcat配置(dbcp连接池、连接池加密、日志分割)
·
Tomcat内存设置
- 确定服务器内存
- Windows系统直接在文档系统中查看
- Linux系统使用命令查看
[root@localhost ~]# free 参数说明: Mem:内存的使用信息 Swap:交换空间的使用信息 total:总计物理内存的大小 used:已使用物理内存 free:可用物理内存 shared:多个进程共享的内存总额 buffers/cached:缓存缓冲使用物理内存大小 available:还可以被应用程序使用的物理内存大小

- 根据可用内存修改配置文件【apache-tomcat-HOME\bin\catalina.sh】
- 配置样例

内存设置说明:
堆内存设置:
-Xms 初始堆大小。如:-Xms256m或2G,默认为物理内存1/64。
-Xmx 最大堆大小。如:-Xmx512m或2G,默认为物理内存1/4。
非堆内存设置:
-XX:PermSize 永久代(方法区)的初始大小,默认为物理内存1/64。
-XX:MaxPermSize 永久代(方法区)的最大值,默认为物理内存1/4。
Tomcat时区设置
场景:服务器时间问题,会导致某些对时效性要求较高或定时任务等,受到不可估量的影响,需重视
- 修改配置文件【apache-tomcat-HOME\bin\catalina.sh】
- 配置样例

配置方式不唯一,可直接设置时区:
Duser.timezone=GMT+08
Tomcat日志分割
场景:一般情况,程序中会使用log4j日志插件处理系统日志,但是,在某些情况下,依旧需要使用Tomcat自带的日志排查问题,Tomcat日志只记录一个,文件会非常大,因此,需要对Tomcat的日志进行分割,方便跟踪
- 参考方案
使用cronolog - 安装cronolog
/data/soft/cronolog-master ln -s configure.ac bootstrap ./configure --prefix=/data/cronolog make make install - 具体配置

org.apache.catalina.startup.Bootstrap "$@" start 2>&1 | /data/cronolog/sbin/cronolog
/data/tomcat/apache-tomcat-8.5.65/logs/catalina.%Y-%m-%d.out >> /dev/null &
- 测试
目录下出现此类文件,即测试通过
【apache-tomcat-HOME\logs\catalina.2011-11-07.out】
Tomcat连接池
推荐使用Druid、BoneCP
- 确认Tomcat使用的连接池版本
Tomcat7以前使用的都是DBCP1,以后都使用DBCP2
- 修改配置文件
<!-- 修改【apache-tomcat-HOME\conf\context.xml] -->
<!-- 在最后添加 -->
<!-- tomcat DBCPPool -->
<Resource name="jdbc/otmsweb"
auth="Container"
type="javax.sql.DataSource"
username="user"
password="pass"
driverClassName="oracle.jdbc.OracleDriver"
url="jdbc:oracle:thin:@ip:port/ins"
factory="org.apache.tomcat.dbcp.dbcp2.BasicDataSourceFactory"
maxIdle="30"
minIdle="10"
maxWaitMillis="30000"
maxTotal="30"
removeAbandonedOnBorrow="true"
removeAbandonedTimeout="180"
logAbandoned="true"/>
参数说明

<!-- 修改主应用【server-HOME\WEB-INF\web.xml] -->
<!-- tomcat DBCPPool -->
<resource-ref >
<description >databaseConnection</description >
<res-ref-name >jdbc/otmsweb</res-ref-name >
<res-type >javax.sql.DataSource</res-type >
<res-auth >Container</res-auth >
</resource-ref >
参数说明
参数基本固定,只需要修改中连接池名称与context.xml中一致即可
Tomcat连接池加密
企业项目中,对于暴露的配置信息最为忌讳,存在安全问题,所以需要对敏感信息进行加密
- 编写加解密程序
// 思路如下
// 1、编写加解密工具类,可使用主流加密方式,亦可自己设计
// 2、重写dbcp加载配置类,填充用户密码时,调用解密方法
// org.apache.tomcat.dbcp.dbcp2.BasicDataSourceFactory
// 加密工程如下:https://download.csdn.net/download/smilecold/86176894
- 放置到【apache-tomcat-HOME\lib】下
- 修改连接池配置文件,用户、密码信息替换为密文,并修改加载配置类
运行工程(注意打包时指定main入口)加密用户密码
<!-- 修改连接池配置中的加载类,配置为自己的工程路径 -->
factory="org.apache.tomcat.dbcp.dbcp2.BasicDataSourceFactory"
常见报错
- 驱动找不到
将驱动包添加到【apache-tomcat-HOME\lib】下 - 报错IllegalArgumentException: The AJP Connector is configured with secretRequired=“true” but the secret
<!-- 修改server.xml -->
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" secretrequired=""/>
具体问题,具体分析,善看日志!
更多推荐
所有评论(0)