首页主机资讯Java服务在Ubuntu如何部署

Java服务在Ubuntu如何部署

时间2025-12-08 21:20:04发布访客分类主机资讯浏览701
导读:在 Ubuntu 上部署 Java 服务的实用步骤 一 准备环境 更新系统并安装 OpenJDK(以 OpenJDK 11 为例): 命令:sudo apt update && sudo apt install -y o...

在 Ubuntu 上部署 Java 服务的实用步骤

一 准备环境

  • 更新系统并安装 OpenJDK(以 OpenJDK 11 为例):
    • 命令:sudo apt update & & sudo apt install -y openjdk-11-jdk
    • 验证:java -versionjavac -version
  • 配置 JAVA_HOME(系统级,推荐写入 /etc/environment):
    • 查看安装路径:update-alternatives --config java(复制类似 /usr/lib/jvm/java-11-openjdk-amd64 的路径)
    • 写入:echo 'JAVA_HOME="/usr/lib/jvm/java-11-openjdk-amd64"' | sudo tee -a /etc/environment
    • 使生效:source /etc/environment
    • 验证:echo $JAVA_HOME

二 打包应用

  • Spring Boot / 可执行 JAR:使用 MavenGradle 打包为可执行 JAR。
    • Maven:mvn clean package,产物在 target/your-app.jar
    • Gradle:./gradlew build,产物在 build/libs/your-app.jar
  • 传统 WAR:使用 mvn package 生成 target/app.war,后续部署到 Tomcat 等容器。

三 部署方式

  • 方式 A:使用 systemd 管理服务(推荐)
    • 创建服务文件:sudo vim /etc/systemd/system/myapp.service
    • 示例内容(按需修改路径与参数):
      [Unit]
      Description=My Java App
      After=network.target
      
      [Service]
      Type=simple
      User=ubuntu
      WorkingDirectory=/opt/myapp
      ExecStart=/usr/bin/java -Xms512m -Xmx1024m -jar /opt/myapp/app.jar
      Restart=always
      RestartSec=5
      Environment="JAVA_OPTS=-Dspring.profiles.active=prod"
      
      [Install]
      WantedBy=multi-user.target
      
    • 常用命令:
      • 重载并启动:sudo systemctl daemon-reload & & sudo systemctl start myapp
      • 开机自启:sudo systemctl enable myapp
      • 查看状态/日志:sudo systemctl status myappsudo journalctl -u myapp -f
  • 方式 B:使用 Tomcat 部署 WAR
    • 安装:sudo apt install -y tomcat9
    • 部署:将 app.war 复制到 /var/lib/tomcat9/webapps/(Tomcat 会自动解压部署)
    • 访问验证:浏览器打开 http://服务器IP:8080/app
    • 管理:使用 sudo systemctl start|stop|restart tomcat9 管理服务
  • 方式 C:使用 Docker
    • 示例 Dockerfile(多阶段构建,体积更小):
      FROM eclipse-temurin:17-jre-alpine AS runtime
      WORKDIR /app
      COPY target/app.jar /app/app.jar
      EXPOSE 8080
      ENTRYPOINT ["java","-jar","/app/app.jar"]
      
    • 构建与运行:
      • 构建:docker build -t myapp:1.0 .
      • 运行:docker run -d -p 8080:8080 --name myapp myapp:1.0
      • 查看日志:docker logs -f myapp

四 网络与反向代理

  • 防火墙放行端口(以 8080 为例):
    • UFW:sudo ufw allow 8080/tcp
    • 云服务器安全组需同步放行对应端口
  • 使用 Nginx 反向代理与 HTTPS(示例):
    server {
        
        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;
    
        }
    
    }
        
    
    • 启用 HTTPS 可结合 Certbot 获取免费证书。

五 运维与安全要点

  • 日志与监控
    • systemd:journalctl -u myapp -f
    • 应用日志:按业务配置写入文件或使用集中式日志(如 ELK)
  • JVM 与性能
    • 合理设置堆内存:-Xms-Xmx(如 -Xms512m -Xmx1024m
    • 生产建议开启 GC 日志与监控(如 JMX/Prometheus Exporter)
  • 进程与权限
    • 以非 root 用户运行服务(如 User=ubuntu),目录权限最小化
  • 备份与回滚
    • 备份 /opt/myapp/ 与配置文件;镜像/版本化发布便于快速回滚
  • 健康检查与就绪探针
    • Spring Boot Actuator:/actuator/health
    • Docker/K8s 场景配置就绪/存活探针

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Java服务在Ubuntu如何部署
本文地址: https://pptw.com/jishu/766350.html
ubuntu hostname怎么检查 Ubuntu中Java项目如何管理

游客 回复需填写必要信息