温馨提示×

Java Web应用在CentOS上如何运行

小樊
43
2026-01-09 22:39:48
栏目: 编程语言

在 CentOS 上运行 Java Web 应用的标准流程


一 准备环境

  • 安装 JDK 8(或项目所需版本),并配置环境变量:
    • 安装:sudo yum install -y java-1.8.0-openjdk-devel
    • 配置:在 /etc/profile.d/java.sh 写入
      • export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
      • export PATH=$JAVA_HOME/bin:$PATH
    • 生效:source /etc/profile.d/java.sh
    • 验证:java -versionjavac -version
  • 安装 Tomcat 9(作为 Servlet 容器):
    • 下载并解压:wget https://downloads.apache.org/tomcat/tomcat-9/v9.0.93/bin/apache-tomcat-9.0.93.tar.gz && tar -xzvf apache-tomcat-9.0.93.tar.gz -C /opt
    • 配置环境变量:在 /etc/profile.d/tomcat.sh 写入
      • export CATALINA_HOME=/opt/apache-tomcat-9.0.93
      • export PATH=$CATALINA_HOME/bin:$PATH
    • 生效:source /etc/profile.d/tomcat.sh
  • 开放访问端口(若启用 firewalld):
    • sudo firewall-cmd --permanent --add-port=8080/tcp && sudo firewall-cmd --reload
  • 可选:安装 Maven 用于构建项目
    • sudo yum install -y maven
    • 验证:mvn -v

二 部署与启动

  • 构建应用(若为 Maven 项目):在项目根目录执行
    • mvn clean package
    • 产物通常为:target/your-app.war
  • 部署到 Tomcat
    • 方式 A(自动解压部署):将 WAR 复制到
      • sudo cp target/your-app.war $CATALINA_HOME/webapps/
      • 访问:http://<服务器IP>:8080/your-app
    • 方式 B(ROOT 部署,根路径访问):
      • 清空 $CATALINA_HOME/webapps/ROOT 内容
      • 部署:sudo cp target/your-app.war $CATALINA_HOME/webapps/ROOT.war
      • 访问:http://<服务器IP>:8080/
  • 启动与验证
    • 启动:$CATALINA_HOME/bin/startup.sh
    • 查看日志:tail -f $CATALINA_HOME/logs/catalina.out
    • 停止:$CATALINA_HOME/bin/shutdown.sh

三 常用管理与优化

  • 以服务方式管理 Tomcat(推荐)
    • 创建服务文件:sudo vim /etc/systemd/system/tomcat.service
    • 示例内容:
      [Unit]
      Description=Apache Tomcat
      After=network.target
      
      [Service]
      Type=forking
      Environment="JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk"
      Environment="CATALINA_HOME=/opt/apache-tomcat-9.0.93"
      ExecStart=$CATALINA_HOME/bin/startup.sh
      ExecStop=$CATALINA_HOME/bin/shutdown.sh
      User=tomcat
      Group=tomcat
      Restart=on-failure
      
      [Install]
      WantedBy=multi-user.target
      
    • 启用与启动:
      • sudo systemctl daemon-reload
      • sudo systemctl enable --now tomcat
      • sudo systemctl status tomcat
  • 端口与防火墙
    • 若需更换端口,编辑 $CATALINA_HOME/conf/server.xml 中的 <Connector port="8080" ... />
    • 开放新端口:sudo firewall-cmd --permanent --add-port=<新端口>/tcp && sudo firewall-cmd --reload
  • 基础安全建议
    • 修改默认管理账号与密码(编辑 conf/tomcat-users.xml
    • 限制管理界面访问来源(结合防火墙或应用层权限)
    • 生产环境建议开启 HTTPS(配置 server.xml 的 SSL Connector)

四 常见问题排查

  • 端口未放行:访问超时或拒绝,检查 firewall-cmd --list-ports 与云服务器安全组规则
  • 应用启动失败:查看 catalina.outlocalhost.<日期>.log 中的异常堆栈
  • 类找不到或依赖缺失:确认打包为 WAR 且依赖已打包(或使用外部 lib
  • 数据库连接失败:核对 JDBC URL、用户名、密码、驱动版本 与数据库网络可达性
  • 静态资源访问慢:启用 Tomcat 压缩与浏览器缓存策略,必要时使用 Nginx 反向代理与静态资源分离

0