本文记录在银河麒麟V10上离线安装 tomcat 9 的过程。
下载安装
- 下载对应安装版本的安装包
Apache Archive Distribution Directory
- 借助传输工具上传安装包至服务器
- 解压 tomcat 安装包
1
| tar -zxvf apache-tomcat-9.0.93.tar.gz
|
日志路径配置
- 创建 tomcat 日志文件夹路径
- 修改日志路径配置
1 2 3 4
| cd /tomcat/conf
vim logging.properties
|
- 修改下面几个地方
1 2 3 4
| 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
以方便观察运行情况
1 2 3 4 5
| cd /example/tomcat/bin vim catalina.sh
CATALINA_OUT=/data/tomcat-logs/catalina.out
|
- 第4步完成后,
catalina.out
会无限写入,长期运行可能导致运行日志较多,配置 logrotate
自动轮转。以下配置可配置每日切割轮转,保留30天日志。你可以将你需要的配置轮转规则发给AI,让其生成相关的配置项,然后比对参考资料进行核对
1 2 3 4 5 6 7 8 9 10 11 12 13
| vim /etc/logrotate.d/tomcat-prod /data/tomcat-logs/catalina.out { daily rotate 30 copytruncate compress delaycompress missingok notifempty dateext dateformat -%Y%m%d }
|
JVM的运行参数优化配置
修改 catalina.sh
写入下面参数
1
| 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
修改启动端口
1 2 3 4 5 6 7 8
| <Connector port="8089" protocol="org.apache.coyote.http11.Http11NioProtocol" connectionTimeout="20000" redirectPort="8443" maxParameterCount="1000" maxThreads="128" maxConnections="10000" acceptCount="256" />
|
配置为服务
查看 Java 安装位置
1
| 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
配置为服务
1
| vim /usr/lib/systemd/system/tomcat.service
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| # 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
|
启动服务
1 2 3 4 5 6 7 8
| 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