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

云计算

在腾讯云服务器的 Linux 环境下部署 Java 项目并实现持久化运行(即项目开机自启、崩溃后自动重启、后台稳定运行),通常需要以下几个步骤。以下以常见的 Spring Boot 项目为例,使用 systemd 服务进行管理,这是目前最推荐的方式。


✅ 一、准备工作

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

    • 操作系统:推荐 CentOS 7+/Ubuntu 20.04+
    • 安全组:开放所需端口(如 8080)
  2. 连接服务器

    ssh root@你的公网IP
  3. 安装 Java 环境

    # 查看是否已安装 Java
    java -version
    
    # 如果没有,安装 OpenJDK 8 或 11(以 Ubuntu 为例)
    sudo apt update
    sudo apt install openjdk-11-jdk -y
    
    # CentOS 用户:
    sudo yum install java-11-openjdk-devel -y

✅ 二、上传 Java 项目 Jar 包

将打包好的 your-project.jar 上传到服务器,比如放在 /opt/myapp/ 目录下。

# 创建目录
sudo mkdir -p /opt/myapp

# 使用 scp 上传(本地执行)
scp your-project.jar root@你的公网IP:/opt/myapp/app.jar

# 或者使用 wget 下载(如果 jar 包在公网可访问)
sudo wget -O /opt/myapp/app.jar "https://your-domain.com/app.jar"

✅ 三、创建 systemd 服务(实现持久化)

systemd 是 Linux 的系统和服务管理器,可以实现开机自启、自动重启等功能。

1. 创建服务文件

sudo vim /etc/systemd/system/myapp.service

写入以下内容(根据实际情况修改):

[Unit]
Description=My Java Application
After=network.target

[Service]
Type=simple
User=root
WorkingDirectory=/opt/myapp
ExecStart=/usr/bin/java -jar /opt/myapp/app.jar
Restart=always
RestartSec=10
StandardOutput=journal
StandardError=journal

[Install]
WantedBy=multi-user.target

🔍 说明:

  • User=root:建议创建专用用户(如 javauser)提高安全性。
  • Restart=always:崩溃后自动重启。
  • RestartSec=10:10 秒后重启。
  • Type=simple:主进程是 Java 启动的 jar。

2. 启用并启动服务

# 重新加载 systemd 配置
sudo systemctl daemon-reexec
sudo systemctl daemon-reload

# 启动服务
sudo systemctl start myapp

# 设置开机自启
sudo systemctl enable myapp

# 查看状态
sudo systemctl status myapp

正常输出应显示 active (running)


✅ 四、查看日志

# 查看实时日志
sudo journalctl -u myapp.service -f

# 查看最近 50 行
sudo journalctl -u myapp.service -n 50

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

如果你希望用域名或 80/443 端口访问,建议使用 Nginx。

  1. 安装 Nginx:

    sudo apt install nginx -y    # Ubuntu
    sudo yum install nginx -y    # CentOS
  2. 配置反向X_X:

    sudo vim /etc/nginx/sites-available/myapp

    写入:

    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;
       }
    }
  3. 启用站点并重启 Nginx:

    sudo ln -s /etc/nginx/sites-available/myapp /etc/nginx/sites-enabled/
    sudo nginx -t
    sudo systemctl restart nginx

✅ 六、安全与优化建议

  1. 防火墙设置

    sudo ufw allow 80
    sudo ufw allow 443
    sudo ufw enable
  2. 使用非 root 用户运行 Java

    sudo adduser javauser
    sudo chown -R javauser:javauser /opt/myapp

    然后修改 service 文件中的 User=javauser

  3. 使用 HTTPS(Let’s Encrypt)
    使用 Certbot 自动申请免费 SSL 证书。

  4. 定期备份
    备份数据库、配置文件和 jar 包。


✅ 七、常用命令总结

功能 命令
启动服务 sudo systemctl start myapp
停止服务 sudo systemctl stop myapp
重启服务 sudo systemctl restart myapp
查看状态 sudo systemctl status myapp
开机自启 sudo systemctl enable myapp
查看日志 sudo journalctl -u myapp -f

✅ 总结

通过 systemd 管理 Java 应用,可以轻松实现:

  • 后台持续运行
  • 崩溃自动重启
  • 开机自启
  • 日志集中管理
  • 便于维护和监控

这是生产环境中推荐的标准做法。


如有使用 Docker、Jenkins 自动部署等需求,也可以进一步扩展自动化流程。欢迎继续提问!

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