温馨提示×

Ubuntu JSP如何部署Web应用

小樊
32
2025-11-22 13:46:30
栏目: 编程语言

Ubuntu 上部署 JSP Web 应用的简明步骤


一 准备环境

  • 安装 JDK(推荐 OpenJDK 11):
    • 更新索引并安装:sudo apt update && sudo apt install openjdk-11-jdk
    • 验证版本:java -version
  • 安装 Tomcat 9(两种常用方式,二选一):
    • 方式 A(系统包,便于管理):sudo apt install tomcat9
      • 启动与开机自启:sudo systemctl start tomcat9 && sudo systemctl enable tomcat9
      • 验证:curl http://localhost:8080
    • 方式 B(官方二进制,便于多实例/自定义):
      • 下载并解压(示例):wget https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.56/bin/apache-tomcat-9.0.56.tar.gz
      • 解压:sudo tar -zxvf apache-tomcat-9.0.56.tar.gz -C /usr/local
      • 启动:/usr/local/apache-tomcat-9.0.56/bin/startup.sh
  • 防火墙放行(如启用 UFW):sudo ufw allow 8080/tcp;后续启用 HTTPS 时放行 443/tcp

二 部署应用

  • 准备应用包:将项目打包为 WAR(标准做法,便于移植与自动化构建)。
  • 部署方式一(手动拷贝,最通用):
    • 拷贝到 Tomcat 的 webapps:sudo cp your_app.war /var/lib/tomcat9/webapps/
    • Tomcat 会自动解压并部署,访问:http://服务器IP:8080/your_app
  • 部署方式二(管理界面,需配置管理员账号):
    • 访问:http://服务器IP:8080/manager/html
    • 使用管理员账号登录后上传 WAR 并部署,部署完成后通过 http://服务器IP:8080/your_app 访问。

三 可选 反向代理与 HTTPS

  • 安装 NginxCertbotsudo apt install nginx python3-certbot-nginx
  • 配置 Nginx 反向代理(示例):
    • 新建站点配置(如 /etc/nginx/sites-available/your_domain):
      server {
          listen 80;
          server_name your_domain.com www.your_domain.com;
      
          location / {
              proxy_pass http://localhost:8080;
              proxy_set_header Host $host;
              proxy_set_header X-Real-IP $remote_addr;
              proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
              proxy_set_header X-Forwarded-Proto $scheme;
          }
      }
      
    • 启用站点并测试:sudo ln -s /etc/nginx/sites-available/your_domain /etc/nginx/sites-enabled/ && sudo nginx -t && sudo systemctl restart nginx
  • 申请并自动配置 Let’s Encrypt SSL:sudo certbot --nginx -d your_domain.com
  • 访问:https://your_domain.com(Nginx 终止 TLS,Tomcat 继续在 8080 提供服务)。

四 常见问题与排查

  • 端口与防火墙:确认 8080 已放行;云服务器需同时配置安全组规则。
  • 应用未解压或访问 404:检查 WAR 是否放在正确目录(如 /var/lib/tomcat9/webapps/),文件名即上下文路径;查看 catalina.outlocalhost_access_log 日志定位问题。
  • 数据库连接失败:核对 JDBC URL/用户名/密码,建议使用容器管理的数据源(JNDI)以简化连接池管理。
  • 版本兼容:确保 JDK 版本Tomcat 版本 兼容(如 JDK 8 可搭配 Tomcat 8.5+)。

0