温馨提示×

Ubuntu中JSP文件如何部署

小樊
35
2025-12-24 02:08:44
栏目: 编程语言

Ubuntu 中 JSP 文件部署指南

一 环境准备

  • 安装 JDK 11(推荐 LTS):sudo apt update && sudo apt install openjdk-11-jdk;验证:java -version。
  • 安装 Tomcat 9(Ubuntu 仓库包):sudo apt install tomcat9;启动与自启:sudo systemctl start tomcat9 && sudo systemctl enable tomcat9;验证:curl http://localhost:8080
  • 防火墙放行:sudo ufw allow 8080/tcp;如需公网域名访问,后续再放行 80/443 并配置反向代理或证书。

二 部署方式

  • 方式一 手动拷贝到 webapps(解压部署)
    • 将应用打包为 WAR 或直接准备目录结构,复制到:/var/lib/tomcat9/webapps/。示例:sudo cp app.war /var/lib/tomcat9/webapps/;Tomcat 会自动解压并部署。
    • 访问地址:http://服务器IP:8080/app/ 或 http://服务器IP:8080/app/index.jsp
    • 也可将单个 JSP 放入 ROOT 应用目录(/var/lib/tomcat9/webapps/ROOT/)直接访问:http://服务器IP:8080/your.jsp
  • 方式二 使用 Tomcat 管理界面(Manager App)
    • 访问:http://服务器IP:8080/manager/html。
    • 使用具有部署权限的 Tomcat 管理员账号登录后,在 “WAR file to deploy” 上传 WAR 并部署;部署完成后通过 http://服务器IP:8080/your_app_name 访问。
  • 方式三 解压版 Tomcat 手工启动(可选)
    • 下载并解压 Apache Tomcat,设置环境变量:export CATALINA_HOME=/opt/tomcat;启动:/opt/tomcat/bin/startup.sh;访问:http://localhost:8080。

三 常见问题与排查

  • 404 找不到资源:确认 WAR 已解压、应用名为目录名或 WAR 名;访问路径是否包含正确的 Context Path
  • JSP 无法编译或显示源码:检查 JDK 是否正确安装并在 PATH/JAVA_HOME 中;Tomcat 默认包含 Jasper JSP 引擎,无需额外安装。
  • 端口被占用:检查 8080 是否被其他进程占用(ss -ltnp | grep 8080),必要时调整 server.xml 的 Connector 端口并重启 Tomcat。
  • 访问被防火墙拦截:确保已放行 8080/tcp(UFW:sudo ufw allow 8080/tcp)。
  • 管理界面 403/401:需在 Tomcat 配置中为管理用户授予角色(manager-gui 等),保存后重启 Tomcat。

四 进阶配置

  • 反向代理与 HTTPS(Nginx + Certbot)
    • 安装:sudo apt install nginx python3-certbot-nginx
    • 获取并配置证书:sudo certbot --nginx -d your_domain.com;按提示自动配置 HTTP→HTTPS 与证书续期。
    • 示例站点配置(/etc/nginx/sites-available/your_domain.com):
      • 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.com /etc/nginx/sites-enabled/ && sudo nginx -t && sudo systemctl restart nginx。
  • 分布式部署(多实例 + 负载均衡)
    • 在多台 Ubuntu 上各部署一套 Tomcat,将同一 WAR 部署到各实例的 webapps;
    • 使用 NginxApache HTTP Server 做负载均衡(upstream + proxy_pass 或 AJP);
    • 规划数据库(主从/读写分离/连接池)、会话保持与健康检查;按需配置 JAVA_HOME/CATALINA_HOME 与性能优化。

0