温馨提示×

Debian与Tomcat结合部署JSP应用

小樊
43
2025-12-22 15:14:35
栏目: 编程语言

在 Debian 上部署 JSP 应用的标准流程


一 环境准备与安装

  • 安装 OpenJDK 11(推荐 LTS):sudo apt update && sudo apt install -y openjdk-11-jdk;验证:java -version。
  • 安装 Tomcat 9(系统包管理):sudo apt install -y tomcat9 tomcat9-admin(可选管理界面);启动与开机自启:sudo systemctl start tomcat9 && sudo systemctl enable tomcat9;验证:curl http://localhost:8080。
  • 目录要点:Tomcat 应用默认部署在 /var/lib/tomcat9/webapps,日志在 /var/log/tomcat9。如使用手动安装,常见路径为 /opt/tomcat 并配合 systemd 管理。

二 部署方式

  • 方式 A 自动部署 WAR
    将应用打包为 WAR(如 myapp.war),复制到 /var/lib/tomcat9/webapps/,Tomcat 会自动解压并部署;访问:http://服务器IP:8080/myapp/。
  • 方式 B 手动目录部署
    /var/lib/tomcat9/webapps/ 下创建应用目录(如 myapp),放入 index.jspWEB-INF/web.xml;如需第三方依赖,放入 WEB-INF/lib/
  • 最小 web.xml 示例(置于 myapp/WEB-INF/):

    index.jsp

  • 快速测试页(index.jsp):
    <%@ page contentType=“text/html;charset=UTF-8” %>Hello, JSP on Tomcat!
  • 依赖管理:将项目 JAR 放入 WEB-INF/lib,或使用 Maven/Gradle 构建生成 WAR 后部署。

三 常用管理与验证

  • 服务管理:sudo systemctl {start|stop|restart|status} tomcat9;设置开机自启:sudo systemctl enable tomcat9
  • 日志排查:实时查看 catalina.out:tail -f /var/log/tomcat9/catalina.out
  • 防火墙:开放 8080 端口(UFW):sudo ufw allow 8080/tcp;如使用 HTTPS 8443,一并放行。
  • 访问路径:应用名为 ROOT 时根路径直达;否则为 /应用名

四 安全与进阶配置

  • 运行身份与权限(手动安装时建议):创建 tomcat 用户与组,最小化授权,关键目录属主设为 tomcat,避免以 root 运行。
  • systemd 服务示例(/etc/systemd/system/tomcat.service):
    [Unit] Description=Apache Tomcat Web Application Container
    After=network.target
    [Service] Type=forking
    User=tomcat Group=tomcat
    Environment=“JAVA_HOME=/usr/lib/jvm/default-java”
    Environment=“CATALINA_PID=/opt/tomcat/temp/tomcat.pid”
    Environment=“CATALINA_HOME=/opt/tomcat”
    Environment=“CATALINA_BASE=/opt/tomcat”
    ExecStart=/opt/tomcat/bin/startup.sh
    ExecStop=/opt/tomcat/bin/shutdown.sh
    Restart=on-failure
    [Install] WantedBy=multi-user.target
    启用:sudo systemctl daemon-reload && sudo systemctl enable --now tomcat。
  • HTTPS 配置(server.xml):启用 8443 并配置证书(示例为 PEM 证书路径):

    重启 Tomcat 生效。
  • 管理界面:如需使用 /manager/html,在 /etc/tomcat9/tomcat-users.xml 中配置具有 manager-gui 角色的账号(注意仅限内网或受控访问)。

0