下载安装
- 下载对应安装版本的安装包
Apache Archive Distribution Directory - 借助传输工具上传安装包至服务器
- 解压 tomcat 安装包
tar -zxvf apache-tomcat-9.0.93.tar.gz
日志路径配置
- 创建 tomcat 日志文件夹路径
mkdir tomcat-logs
- 修改日志路径配置
# 切换到 tomcat 的 conf 目录
cd /tomcat/conf
# 修改日志配置文件
vim logging.properties
- 修改下面几个地方
1catalina.org.apache.juli.AsyncFileHandler.directory = /data/tomcat-logs
2localhost.org.apache.juli.AsyncFileHandler.directory = /data/tomcat-logs
3manager.org.apache.juli.AsyncFileHandler.directory = /data/tomcat-logs
4host-manager.org.apache.juli.AsyncFileHandler.directory = /data/tomcat-logs
- 修改
catalina.sh
以方便观察运行情况
# 切换到 tomcat 的 bin 目录
cd /example/tomcat/bin
vim catalina.sh
# 修改 catalina.sh 在前面追加,用于查看 tomcat 运行时日志
CATALINA_OUT=/data/tomcat-logs/catalina.out
- 第4步完成后,
catalina.out
会无限写入,长期运行可能导致运行日志较多,配置logrotate
自动轮转。以下配置可配置每日切割轮转,保留30天日志。你可以将你需要的配置轮转规则发给AI,让其生成相关的配置项,然后比对参考资料进行核对
# 添加一个logrotate文件,最后的 tomcat-prod 设置为你方便识别的名字即可
vim /etc/logrotate.d/tomcat-prod
/data/tomcat-logs/catalina.out {dailyrotate 30copytruncatecompressdelaycompressmissingoknotifemptydateextdateformat -%Y%m%d
}
JVM的运行参数优化配置
修改 catalina.sh
写入下面参数
JAVA_OPTS="$JAVA_OPTS $JSSE_OPTS -server -Xmx16G -Xms16G -XX:MaxDirectMemorySize=4G -XX:+UseG1GC -XX:ConcGCThreads=16 -XX:ParallelGCThreads=16"
注:根据官方文档,这并非推荐的配置的方式,推荐做法是修改 setenv.sh,因本次部署时未实践,故不做记录,请参考参考资料2
修改启动端口号
若不想使用默认端口,可在 server.xml
修改启动端口
<Connector port="8089" protocol="org.apache.coyote.http11.Http11NioProtocol"connectionTimeout="20000"redirectPort="8443"maxParameterCount="1000"maxThreads="128"maxConnections="10000"acceptCount="256"/>
配置为服务
查看 Java 安装位置
readlink -f $(which java) | sed 's|/bin/java||'
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.312.b07-10.ky10.x86_64/jre
配置为服务
vim /usr/lib/systemd/system/tomcat.service
# Systemd unit file for default tomcat
#
# To create clones of this service:
# DO NOTHING, use tomcat@.service instead.[Unit]
Description=Tomcat service
After=network.target[Service]
Type=forking
Environment="JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.312.b07-10.ky10.x86_64/jre "
User=root
Group=root
ExecStart=/example/tomcat/bin/startup.sh
ExecStop=/example/tomcat/bin/shutdown.sh
ExecReload=/usr/bin/kill -s SIGHUP $MAINPID
PrivateTmp=true[Install]
WantedBy=multi-user.target
启动服务
# 重载配置
systemctl daemon-reload
# 启动服务
systemctl start tomcat.service
# 查看服务状态
systemctl status tomcat.service
# 创建开机启动
systemctl enable tomcat.service
参考资料
- logrotate(8) - Linux man page
- Memory - Apache Tomcat - Apache Software Foundation