温馨提示×

Debian中Tomcat部署Web应用步骤

小樊
31
2025-11-28 05:21:21
栏目: 智能运维

在 Debian 上部署 Tomcat Web 应用的步骤

一 准备环境

  • 更新系统并安装 Java(推荐 OpenJDK 11):
    • sudo apt update && sudo apt install -y openjdk-11-jdk
    • java -version
  • 创建专用系统用户(避免以 root 运行):
    • sudo groupadd --system tomcat
    • sudo useradd -s /usr/sbin/nologin -g tomcat -d /opt/tomcat tomcat
  • 说明:Tomcat 9 要求 Java 8+,本示例选用 OpenJDK 11 以兼顾稳定性与兼容性。

二 安装与配置 Tomcat

  • 方式 A 二进制安装(通用、便于多版本并存)
    • 下载并解压(示例为 Tomcat 9.0.76):
      • wget https://downloads.apache.org/tomcat/tomcat-9/v9.0.76/bin/apache-tomcat-9.0.76.tar.gz
      • sudo mkdir -p /opt/tomcat
      • sudo tar -xvf apache-tomcat-9.0.76.tar.gz -C /opt/tomcat --strip-components=1
    • 设置目录权限:
      • sudo chown -R tomcat:tomcat /opt/tomcat
      • sudo chmod +x /opt/tomcat/bin/*.sh
    • 配置环境变量(推荐在 setenv.sh 中设置):
      • echo ‘export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64’ | sudo tee /opt/tomcat/bin/setenv.sh
      • echo ‘export CATALINA_HOME=/opt/tomcat’ | sudo tee -a /opt/tomcat/bin/setenv.sh
  • 方式 B 使用发行版包(简洁、系统集成度高)
    • 安装:sudo apt install -y tomcat9 tomcat9-admin
    • 目录与权限通常位于:/var/lib/tomcat9、/var/log/tomcat9、/etc/tomcat9
    • 注意:不同发行版/版本的包名与目录可能不同,请以实际环境为准。

三 配置 systemd 服务

  • 创建服务文件 /etc/systemd/system/tomcat.service(二进制安装场景):
    • sudo tee /etc/systemd/system/tomcat.service <<‘EOF’ [Unit] Description=Apache Tomcat Web Application Container After=network.target

      [Service] Type=forking User=tomcat Group=tomcat Environment=“JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64” Environment=“CATALINA_PID=/opt/tomcat/temp/tomcat.pid” 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 Restart=always

      [Install] WantedBy=multi-user.target EOF

  • 启用与启动:
    • sudo systemctl daemon-reload
    • sudo systemctl enable --now tomcat
    • sudo systemctl status tomcat
  • 验证:
    • curl -I http://127.0.0.1:8080
    • 若使用发行版包,可直接:sudo systemctl enable --now tomcat9。

四 部署 Web 应用

  • 自动部署(最简便):
    • 将 WAR 包复制到 webapps:sudo cp your-app.war /opt/tomcat/webapps/
    • Tomcat 会自动解压并部署,访问:http://服务器IP:8080/your-app
  • 外部目录部署(不移动 WAR):
    • /opt/tomcat/conf/Catalina/localhost/ 创建文件 app.xml
      • sudo tee /opt/tomcat/conf/Catalina/localhost/app.xml <<‘EOF’ EOF
    • 访问:http://服务器IP:8080/app
  • 管理界面部署(可选):
    • 编辑 /opt/tomcat/conf/tomcat-users.xml,添加管理用户(请使用强密码):
      • sudo tee -a /opt/tomcat/conf/tomcat-users.xml <<‘EOF’ EOF
    • 重启 Tomcat 后访问:http://服务器IP:8080/manager/html。

五 网络与安全加固

  • 防火墙放行:
    • UFW:sudo ufw allow 8080/tcp
    • firewalld:sudo firewall-cmd --permanent --add-port=8080/tcp && sudo firewall-cmd --reload
  • 可选:反向代理与域名访问(HTTP)
    • 安装与启用模块:sudo apt install -y apache2 libapache2-mod-jk && sudo a2enmod jk
    • 配置 workers.properties(/etc/apache2/workers.properties):
      • worker.list=worker1
      • worker.worker1.type=ajp13
      • worker.worker1.host=localhost
      • worker.worker1.port=8009
    • 配置虚拟主机(/etc/apache2/sites-available/your-site.conf):
      • <VirtualHost :80> ServerName www.example.com JkMount / worker1 ErrorLog ${APACHE_LOG_DIR}/example_error.log CustomLog ${APACHE_LOG_DIR}/example_access.log combined
    • 启用站点并重启:sudo a2ensite your-site.conf && sudo systemctl restart apache2
  • 日志与排错:
    • 查看实时日志:tail -f /opt/tomcat/logs/catalina.out
    • 发行版包路径可能为:/var/log/tomcat9/catalina.out
  • 安全建议:
    • 使用强口令与最小权限配置管理用户
    • 限制管理接口访问来源(如仅内网)
    • 配置 HTTPS/TLS(启用 8443 或前置反向代理的 443)
    • 隐藏 Tomcat 版本信息,及时打补丁与更新。

0