温馨提示×

Ubuntu如何管理Tomcat服务

小樊
35
2025-12-26 20:30:13
栏目: 智能运维

Ubuntu 管理 Tomcat 服务的实用指南

一 安装与准备

  • 安装 Java(推荐 OpenJDK 11):sudo apt update && sudo apt install -y openjdk-11-jdk;验证:java -version。创建专用系统用户(禁止 root 运行):sudo useradd -m -U -d /opt/tomcat -s /bin/false tomcat。下载并解压 Tomcat(示例为 Tomcat 9)到 /opt/tomcat,设置权限:sudo chown -R tomcat: /opt/tomcat 与 sudo chmod +x /opt/tomcat/bin/*.sh。环境变量建议写入 /opt/tomcat/bin/setenv.sh:echo ‘export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64’ | sudo tee /opt/tomcat/bin/setenv.sh && sudo chmod +x /opt/tomcat/bin/setenv.sh。开放访问端口(示例 8080):sudo ufw allow 8080/tcp;云服务器需同时在安全组放行。版本匹配要点:Tomcat 9 需 JDK 8+Tomcat 10 需 JDK 11+

二 以 Systemd 管理服务

  • 创建服务单元:sudo nano /etc/systemd/system/tomcat.service,示例要点(按需修改路径与 JAVA_HOME):
    • [Unit] Description=Tomcat 9 servlet container;After=network.target
    • [Service] Type=forking;Environment=JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64;Environment=CATALINA_HOME=/opt/tomcat;Environment=CATALINA_BASE=/opt/tomcat;Environment=‘CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC’;Environment=‘JAVA_OPTS=-Djava.awt.headless=true -Djava.security.egd=file:/dev/urandom’;ExecStart=/opt/tomcat/bin/startup.sh;ExecStop=/opt/tomcat/bin/shutdown.sh;User=tomcat;Group=tomcat;UMask=0007;RestartSec=10;Restart=always
    • [Install] WantedBy=multi-user.target
  • 启用与常用操作:sudo systemctl daemon-reload;sudo systemctl enable --now tomcat;sudo systemctl status tomcat;sudo systemctl restart tomcat;查看日志:sudo journalctl -u tomcat -f。提示:若改用脚本方式启动,请确保脚本以 tomcat 用户执行并具备相应权限。

三 部署与日常运维

  • 部署应用:管理界面上传 WAR(访问 /manager/html),或将 WAR 放入 /opt/tomcat/webapps 自动解压部署;删除 WAR 或目录可卸载。修改默认端口:编辑 /opt/tomcat/conf/server.xml 为如 8081 后重启。JVM 调优:在 setenv.sh 或 systemd 的 CATALINA_OPTS 中设置堆与 GC,例如:-Xms512M -Xmx1024M -server -XX:+UseParallelGC。日志与排错:实时查看 sudo tail -f /opt/tomcat/logs/catalina.out;Systemd 日志:journalctl -u tomcat -f。Spring Boot 打成 WAR 部署要点:pom.xml 设置 war,启动类继承 SpringBootServletInitializer 并重写 configure 方法。

四 安全与访问控制

  • 管理界面:编辑 /opt/tomcat/conf/tomcat-users.xml 添加角色与用户(示例:manager-gui、admin-gui)。限制远程访问:在 /opt/tomcat/webapps/manager/META-INF/context.xml/host-manager/META-INF/context.xml 中配置 RemoteAddrValve 的 allow 列表,生产环境仅允许内网或指定网段,例如:allow=“127.\d+.\d+.\d+|::1|0:0:0:0:0:0:0:1|203.0.113.\d+|你的公网IP”。最小权限:始终以 tomcat 用户运行,目录权限最小化。加固建议:禁用或限制管理端对外暴露,设置强口令并定期更换;启用 HTTPS(在 server.xml 配置 8443 与证书);关注 Tomcat 与 JDK 安全更新并及时升级。

五 监控与故障排查

  • 基础检查:查看进程 ps -ef | grep tomcat;查看监听 ss -tunlp | grep java 或 netstat -tunlp | grep java;服务状态 sudo systemctl status tomcat;实时日志 tail -f /opt/tomcat/logs/catalina.out。端口连通性 curl -I http://localhost:8080。JMX 远程监控:在启动参数中开启 JMX(设置主机名、端口、认证与 SSL),使用 JConsole/VisualVM 连接查看 JVM、线程、连接器等指标。日志轮转与容量治理:为 logs/*.out 配置 logrotate(如 size 50M、rotate 7、compress),防止磁盘被 catalina.out 撑满。第三方监控:接入 Prometheus + Grafana(JMX Exporter 或 Tomcat Exporter)、Zabbix(Java Gateway)实现可视化与告警。

0