温馨提示×

CentOS JSP项目如何部署

小樊
41
2025-12-15 17:44:10
栏目: 编程语言

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


一 准备环境

  • 安装 Java JDK 8(OpenJDK):
    • 命令:sudo yum install -y java-1.8.0-openjdk java-1.8.0-openjdk-devel
    • 验证:java -versionjavac -version
  • 安装 Tomcat(两种常用方式,二选一)
    • 方式A 系统包管理器安装(便于用 systemd 管理):sudo yum install -y tomcat
    • 方式B 官方二进制包安装(便于多实例与版本隔离):
      • 下载并解压:wget https://downloads.apache.org/tomcat/tomcat-9/v9.0.56/bin/apache-tomcat-9.0.56.tar.gz
      • 解压:tar -xzvf apache-tomcat-9.0.56.tar.gz -C /usr/local/
      • 建议软链:ln -sfn /usr/local/apache-tomcat-9.0.56 /usr/local/tomcat
  • 环境变量(二进制安装时建议设置)
    • 编辑:echo 'export CATALINA_HOME=/usr/local/tomcat' >> /etc/profile
    • 生效:source /etc/profile
  • 防火墙放行 8080(若使用 firewalld)
    • 命令:sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent && sudo firewall-cmd --reload
  • 可选验证:访问 http://服务器IP:8080 出现 Tomcat 欢迎页即表示基础环境就绪。

二 部署应用

  • 准备应用包:将项目打包为 WAR(如:ROOT.war 或 myapp.war)。
  • 部署方式
    • 自动部署:将 WAR 复制到 Tomcat 的 webapps 目录,Tomcat 会自动解压并部署。
      • 示例:cp target/myapp.war /usr/local/tomcat/webapps/
      • 访问:http://服务器IP:8080/myapp/(若为 ROOT.war,则访问根路径 http://服务器IP:8080/
    • 手动目录部署:在 webapps 下新建目录并放入应用文件,设置合适权限。
      • 示例:
        • mkdir -p /usr/local/tomcat/webapps/myapp
        • cp -r target/myapp/* /usr/local/tomcat/webapps/myapp/
        • chown -R tomcat:tomcat /usr/local/tomcat/webapps/myapp
  • 热部署与回滚
    • 直接替换 WAR 文件或删除解压目录后重启 Tomcat 即可完成回滚/升级(建议先备份旧包与目录)。
  • 常用验证
    • 查看解压结果:ls /usr/local/tomcat/webapps/
    • 查看运行日志:tail -f /usr/local/tomcat/logs/catalina.out
    • 简单 JSP 自检:在 webapps 下新建 test.jsp,访问 http://服务器IP:8080/test.jsp 能看到输出即表明容器解析正常。

三 以 Systemd 管理 Tomcat(推荐)

  • 创建服务文件:sudo vim /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-1.8.0-openjdk"
    Environment="CATALINA_PID=/usr/local/tomcat/temp/tomcat.pid"
    Environment="CATALINA_HOME=/usr/local/tomcat"
    Environment="CATALINA_BASE=/usr/local/tomcat"
    Environment='CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC'
    Environment='JAVA_OPTS=-Djava.awt.headless=true -Dfile.encoding=UTF-8 -Djava.security.egd=file:/dev/./urandom'
    ExecStart=/usr/local/tomcat/bin/startup.sh
    ExecStop=/usr/local/tomcat/bin/shutdown.sh
    User=tomcat
    Group=tomcat
    UMask=0007
    RestartSec=10
    Restart=always
    
    [Install]
    WantedBy=multi-user.target
    
  • 启动与开机自启
    • sudo systemctl daemon-reload
    • sudo systemctl start tomcat && sudo systemctl enable tomcat
    • sudo systemctl status tomcat
  • 说明
    • 若使用系统包管理器安装的 Tomcat,可直接 systemctl start|enable tomcat 使用默认服务;二进制安装建议按上述自定义服务文件管理。

四 常见问题与优化

  • 端口被占用
    • 修改 conf/server.xml 中的 <Connector port="8080" ... /> 为未占用端口,重启 Tomcat。
  • 权限问题
    • 确保 Tomcat 用户对 webapps、logs、temp、work 等目录有读写权限(如:chown -R tomcat:tomcat /usr/local/tomcat)。
  • 页面乱码
    • 在 JSP 顶部添加:<%@ page contentType="text/html;charset=UTF-8" pageEncoding="UTF-8" %>
    • 确认 JAVA_OPTS 包含 -Dfile.encoding=UTF-8
  • JVM 与性能
    • CATALINA_OPTS 中设置堆大小(如 -Xms512M -Xmx1024M),按需开启并行 GC、Headless 模式等。
  • 连接池与数据库
    • conf/context.xml 或应用的 WEB-INF/web.xml 中配置数据源(JDBC URL、驱动、用户名、密码),建议使用连接池(如 HikariCP/DBCP2)并合理设置最大连接数、超时等参数。
  • 日志与排错
    • 优先查看 catalina.outlocalhost*.logmanager*.log 等日志文件,定位类加载、数据库连接、JSP 编译等错误。

0