腾讯云服务器linux环境下java项目持久化部署?

在腾讯云服务器(Linux 环境)下部署 Java 项目并实现持久化运行,通常涉及以下几个关键步骤。以下是详细的操作指南:


✅ 一、准备工作

  1. 购买并登录腾讯云 CVM 实例

    • 操作系统建议:CentOS 7+/Ubuntu 20.04+
    • 开放端口(安全组):
      • SSH(22)
      • HTTP/HTTPS(80/443)
      • 自定义端口(如 8080)
  2. 连接服务器

    ssh root@你的公网IP

✅ 二、安装基础环境

1. 安装 JDK

# 查看是否已安装
java -version

# 若未安装,以 CentOS 为例使用 yum 安装 OpenJDK 11
sudo yum install -y java-11-openjdk-devel

# 或者手动上传 Oracle JDK 并配置环境变量

推荐使用 OpenJDK,避免许可证问题。

2. 配置 JAVA_HOME(可选但推荐)

编辑 /etc/profile

export JAVA_HOME=/usr/lib/jvm/java-11-openjdk
export PATH=$PATH:$JAVA_HOME/bin

然后生效:

source /etc/profile

✅ 三、上传 Java 项目

假设你有一个打包好的 JAR 文件(如 myapp.jar)。

方法 1:使用 SCP 上传本地文件

scp myapp.jar root@你的公网IP:/root/

方法 2:使用 Git 克隆项目(适合从代码构建)

git clone https://gitee.com/xxx/myproject.git
cd myproject
mvn clean package -DskipTests

✅ 四、持久化运行 Java 应用

为了让 Java 程序在后台长期运行且不因终端关闭而终止,有以下几种方式:


✅ 方式一:使用 nohup + &(简单实用)

nohup java -jar myapp.jar > app.log 2>&1 &
  • nohup:忽略挂起信号,即使退出终端也继续运行
  • >:重定向输出到日志文件
  • &:后台运行

查看进程:

ps aux | grep java

停止应用:

pkill -f myapp.jar
# 或 kill 进程ID

✅ 方式二:使用 systemd(推荐用于生产环境)

创建一个系统服务,开机自启、自动重启、便于管理。

  1. 创建服务文件:

    sudo vim /etc/systemd/system/myapp.service
  2. 写入内容(根据实际情况修改路径):

    [Unit]
    Description=My Java Application
    After=network.target
    
    [Service]
    Type=simple
    User=root
    ExecStart=/usr/bin/java -jar /root/myapp.jar
    Restart=always
    RestartSec=10
    StandardOutput=journal
    StandardError=journal
    WorkingDirectory=/root
    
    [Install]
    WantedBy=multi-user.target
  3. 启动服务:

    sudo systemctl daemon-reload
    sudo systemctl start myapp
    sudo systemctl enable myapp    # 开机自启
  4. 查看状态和日志:

    sudo systemctl status myapp
    sudo journalctl -u myapp -f    # 实时查看日志

✅ 方式三:使用 screentmux(临时调试用)

# 安装 screen
sudo yum install screen -y

# 创建会话
screen -S java-app

# 在会话中运行
java -jar myapp.jar

# 按 Ctrl+A, 再按 D 脱离会话
# 重新连接:screen -r java-app

不推荐用于生产,适合测试阶段。


✅ 五、配置反向(可选,配合 Nginx)

若使用 8080 端口,可通过 Nginx 反向到 80 端口。

  1. 安装 Nginx:

    sudo yum install nginx -y
    sudo systemctl start nginx
    sudo systemctl enable nginx
  2. 配置站点(/etc/nginx/conf.d/myapp.conf):

    server {
        listen 80;
        server_name your-domain.com;  # 或公网IP
    
        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;
        }
    }
  3. 重载 Nginx:

    sudo nginx -t
    sudo systemctl reload nginx

✅ 六、数据库与持久化数据

如果你的 Java 项目依赖 MySQL、Redis 等:

  • 可在同台服务器安装,或使用腾讯云 云数据库 CDB / CRS
  • 数据库存储路径应挂载独立云硬盘(CBS),确保数据持久化

示例:挂载云硬盘并作为数据目录(如 /data


✅ 七、安全性建议

  1. 不要用 root 用户运行服务(创建专用用户)

    useradd -m -s /bin/bash javauser
    chown -R javauser:javauser /opt/myapp.jar
  2. 修改 systemd 服务中的 User=javauser

  3. 防火墙限制:

    sudo firewall-cmd --permanent --add-port=8080/tcp
    sudo firewall-cmd --reload
  4. 使用 HTTPS(Let’s Encrypt 免费证书)


✅ 八、监控与日志

  • 日志轮转(logrotate)
  • 使用 crontab 定期备份日志
  • 结合腾讯云 云监控 查看 CPU、内存等指标

✅ 总结:推荐流程(生产级)

步骤 操作
1 购买 CVM + 配置安全组
2 安装 JDK、MySQL、Nginx
3 上传 JAR 包
4 使用 systemd 创建服务
5 配置 Nginx 反向
6 设置开机自启、日志管理
7 域名解析 + SSL 证书

如有需要,可以提供你的项目类型(Spring Boot、普通 Java Web 等),我可以给出更具体的部署脚本或配置示例。

未经允许不得转载:云计算 » 腾讯云服务器linux环境下java项目持久化部署?