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"
常见报错
  1. 驱动找不到
    将驱动包添加到【apache-tomcat-HOME\lib】下
  2. 报错IllegalArgumentException: The AJP Connector is configured with secretRequired=“true” but the secret
    <!-- 修改server.xml -->
    <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" secretrequired=""/>

具体问题,具体分析,善看日志!

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐