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;
- 使用 Nginx 或 Apache HTTP Server 做负载均衡(upstream + proxy_pass 或 AJP);
- 规划数据库(主从/读写分离/连接池)、会话保持与健康检查;按需配置 JAVA_HOME/CATALINA_HOME 与性能优化。