JSP项目在Ubuntu上的部署流程是怎样的
小樊
44
2025-12-24 02:14:46
Ubuntu上部署JSP项目的标准流程
一 准备环境
- 更新系统并安装 JDK(推荐 OpenJDK 8/11)
- 安装示例:sudo apt update && sudo apt install openjdk-11-jdk
- 验证:java -version、javac -version
- 安装 Tomcat(两种常用方式)
- 方式A 使用系统包管理器安装(便于维护)
- 安装:sudo apt install tomcat9
- 常用目录:/var/lib/tomcat9/webapps(应用目录)、/usr/share/tomcat9(程序文件)、/etc/tomcat9(配置)
- 验证:访问 http://服务器IP:8080
- 方式B 手动安装(便于多版本并存与自定义)
- 下载并解压 Tomcat 至如 /opt/tomcat
- 配置环境变量:在 ~/.bashrc 或 setenv.sh 中设置 JAVA_HOME、CATALINA_HOME
- 启动:/opt/tomcat/bin/startup.sh
- 验证:访问 http://localhost:8080
- 说明
- 若使用包管理器安装,Tomcat 通常会作为服务自动启动;手动安装需自行启动与维护。
二 部署应用
- 准备应用包
- 使用 IDE 导出为 WAR 包,或命令行:jar -cvf app.war 你的Web应用目录/
- 部署方式(常用三种)
- 自动部署:将 WAR 复制到 webapps,Tomcat 会自动解压并部署,访问路径为 /应用名
- Manager App:通过 http://IP:8080/manager/html 上传并部署(需配置管理员账号)
- 手动 Context
- 在 conf/server.xml 的 内添加
- 或在 conf/Catalina/localhost/app.xml 中定义 Context(更易于独立管理)
- 访问验证
- 部署完成后访问 http://IP:8080/应用名 或 http://域名/应用名
- 提示
- WAR 部署是最常见、最省心的做法;修改代码后替换 WAR 即可完成更新。
三 网络与反向代理
- 防火墙放行
- 放行 HTTP/HTTPS:sudo ufw allow 80/tcp;sudo ufw allow 443/tcp
- 使用 Nginx 反向代理到 Tomcat(便于域名、静态资源与 HTTPS)
- 安装:sudo apt install nginx certbot python3-certbot-nginx
- 站点配置示例(/etc/nginx/sites-available/your_domain):
- listen 80; server_name your_domain.com;
- location / { proxy_pass http://127.0.0.1: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 certbot --nginx -d your_domain.com
- 访问
- 通过 http://your_domain.com 与 https://your_domain.com 访问应用
四 数据库与JDBC驱动
- 安装 MySQL(如项目需要)
- 安装:sudo apt install mysql-server
- 安全初始化:sudo mysql_secure_installation
- JDBC 驱动放置
- 将 mysql-connector-java-x.x.x.jar 放入应用的 WEB-INF/lib 目录,确保运行期可加载驱动
- 连接配置
- 在应用的 context.xml 或 web.xml 中配置数据源(JNDI)或在代码中以 JDBC URL 直连,注意字符集与 SSL 选项
五 常见问题与运维建议
- 端口与防火墙
- 默认端口 8080;若冲突,修改 conf/server.xml 的 ;云服务器需放行安全组与系统防火墙
- 日志排查
- 查看 logs/catalina.out、logs/localhost.log* 定位启动与运行期错误
- JVM 与内存
- 在 setenv.sh 中设置 CATALINA_OPTS(如 -Xms512M -Xmx1024M),避免 OOM
- 服务化与开机自启
- 手动安装时建议创建 systemd 服务单元(示例见下方),便于启动/停止/重启与开机自启
- 安全建议
- 禁用或限制 Manager App 访问;删除示例应用;为管理接口与公网访问配置强密码与 IP 白名单;及时打补丁与升级 Tomcat/JDK
- systemd 服务示例(手动安装 Tomcat 时)
- /etc/systemd/system/tomcat.service
- [Unit] Description=Apache Tomcat Web Application Container;After=network.target
- [Service] Type=forking
- Environment=JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
- Environment=CATALINA_HOME=/opt/tomcat
- Environment=CATALINA_BASE=/opt/tomcat
- Environment=‘CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC’
- ExecStart=/opt/tomcat/bin/startup.sh
- ExecStop=/opt/tomcat/bin/shutdown.sh
- User=tomcat
- Group=tomcat
- Restart=always
- [Install] WantedBy=multi-user.target
- 启用:sudo systemctl daemon-reload && sudo systemctl enable --now tomcat