温馨提示×

JSP项目在CentOS上如何部署

小樊
31
2025-12-31 09:20:35
栏目: 编程语言

在 CentOS 上部署 JSP 项目的标准流程


一 准备与安装

  • 更新系统并安装 JDK(推荐 OpenJDK 8 或 11):
    • 安装命令示例:sudo yum install -y java-11-openjdk-devel
    • 验证:java -version、javac -version
  • 配置环境变量(全局生效):
    • 编辑文件:sudo vi /etc/profile.d/java.sh
    • 写入示例(路径以实际为准):
      • export JAVA_HOME=/usr/lib/jvm/java-11-openjdk
      • export PATH=$JAVA_HOME/bin:$PATH
    • 使生效:source /etc/profile.d/java.sh
  • 安装 Tomcat(两种常用方式,二选一):
    • 方式A 使用系统包管理器(便于管理):sudo yum install -y tomcat tomcat-admin-webapps
    • 方式B 官方二进制包(便于多版本并存):
      • 下载并解压到 /usr/local/tomcat
      • 启动:/usr/local/tomcat/bin/startup.sh
  • 启动与自启:
    • 系统包管理器安装:sudo systemctl start tomcat && sudo systemctl enable tomcat
    • 二进制包:建议配置 systemd 服务或使用脚本管理服务

二 部署与发布

  • 打包应用:将项目打成 WAR 包(如使用 Maven:mvn clean package)
  • 部署方式(任选其一):
    • 自动部署:将 WAR 复制到 Tomcat 的 webapps 目录,Tomcat 会自动解压部署;访问路径为 http://服务器IP:8080/应用名/
    • 部署为 ROOT:清空 webapps/ROOT 内容,将 WAR 放入 ROOT 或解压到 ROOT,访问 http://服务器IP:8080/
    • 虚拟主机部署(基于域名):
      • 在 server.xml 的 Engine 内添加 Host,或使用 Catalina/域名/ROOT.xml 配置,指定 docBase 为你的应用目录,实现按域名访问
  • 常用管理:
    • 如需使用 Manager App,在 conf/tomcat-users.xml 中配置角色与用户(如 manager-gui、admin-gui 等),然后重启 Tomcat 登录管理界面

三 网络与防火墙

  • 放行访问端口(默认 8080):
    • firewalld:sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent && sudo firewall-cmd --reload
    • 云服务器还需在控制台安全组放行对应端口
  • 端口与访问:
    • 如需使用 80 端口访问,可修改 conf/server.xml 中 Connector 的 port 为 80,并确保系统权限与防火墙已放行 80

四 验证与常见问题

  • 验证步骤:
    • 访问 http://服务器IP:8080 出现 Tomcat 欢迎页说明服务正常
    • 访问应用:http://服务器IP:8080/应用名 或 http://服务器IP:8080(ROOT 部署)
    • 可放置测试 test.jsp 验证 JSP 解析是否正常
  • 常见问题处理:
    • 端口被占用:修改 server.xml 的 Connector 端口或释放占用进程
    • 权限问题:检查 Tomcat 目录与 WAR 文件的属主与权限
    • 页面乱码:在 JSP 顶部添加 <%@ page contentType=“text/html;charset=UTF-8” pageEncoding=“UTF-8” %>
    • 管理界面无法登录:检查 tomcat-users.xml 角色与用户配置是否正确并已重启

五 进阶建议

  • 使用 systemd 托管 Tomcat(二进制安装推荐):
    • 创建 /etc/systemd/system/tomcat.service,示例:
      • [Unit] Description=Tomcat;After=network.target
      • [Service] Type=forking;ExecStart=/usr/local/tomcat/bin/startup.sh;ExecStop=/usr/local/tomcat/bin/shutdown.sh;User=tomcat;Restart=on-failure
      • [Install] WantedBy=multi-user.target
    • 启用:sudo systemctl daemon-reload && sudo systemctl enable --now tomcat
  • 多实例与版本管理:不同版本解压到不同目录,使用独立 CATALINA_HOME 与端口
  • 反向代理与静态资源:如需 Nginx 前置,建议仅做反向代理(Nginx 不解析 JSP),将请求转发到 Tomcat 的 8080 端口

0