温馨提示×

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.comhttps://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.outlogs/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

0