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

服务器

在腾讯云服务器的 Linux 环境下部署 Java 项目并实现持久化运行(即项目开机自启、后台运行、崩溃自动重启等),是实际生产环境中常见的需求。以下是完整的部署流程,适用于 Spring Boot 或普通 Java Web 项目。


✅ 一、准备工作

1. 购买并登录腾讯云 CVM

  • 登录 腾讯云控制台
  • 创建一台 Linux 云服务器(推荐 CentOS 7+/Ubuntu 20.04+)
  • 获取公网 IP、用户名(如 rootubuntu)、密码或密钥

使用 SSH 登录:

ssh root@你的公网IP

✅ 二、安装必要环境

1. 安装 JDK

# Ubuntu/Debian
sudo apt update
sudo apt install openjdk-17-jdk -y

# CentOS/RHEL
sudo yum install java-17-openjdk-devel -y

验证安装:

java -version
javac -version

设置 JAVA_HOME(可选,但建议):

export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64  # 根据实际路径调整
export PATH=$JAVA_HOME/bin:$PATH

写入 /etc/profile 实现全局生效:

echo 'export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64' | sudo tee -a /etc/profile
echo 'export PATH=$JAVA_HOME/bin:$PATH' | sudo tee -a /etc/profile
source /etc/profile

2. 上传 Java 项目 JAR 包

将本地打包好的 your-project.jar 上传到服务器,例如:

方法一:使用 scp

scp your-project.jar root@你的公网IP:/root/app/

方法二:使用 wget 下载(如果 jar 包已上传到 OSS 或 GitHub)

mkdir -p /root/app && cd /root/app
wget https://your-domain.com/your-project.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=/root/app
ExecStart=/usr/bin/java -jar your-project.jar
Restart=always
RestartSec=10
StandardOutput=journal
StandardError=journal

[Install]
WantedBy=multi-user.target

参数说明:

  • User: 运行用户(建议创建专用用户如 javauser 提高安全性)
  • WorkingDirectory: 项目所在目录
  • ExecStart: 启动命令
  • Restart=always: 崩溃后自动重启
  • RestartSec=10: 重启间隔 10 秒

2. 启用并启动服务

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

# 启动服务
sudo systemctl start myapp

# 设置开机自启
sudo systemctl enable myapp

# 查看状态
sudo systemctl status myapp

正常输出应显示 active (running)


✅ 四、查看日志

使用 journalctl 查看服务日志:

# 查看最近日志
sudo journalctl -u myapp.service -f

# 查看某天日志
sudo journalctl -u myapp.service --since "2025-04-05"

✅ 五、开放防火墙端口(如 8080)

如果使用的是 Spring Boot,默认端口为 8080

1. 开放腾讯云安全组

  • 登录腾讯云控制台 → 找到 CVM 实例 → 安全组 → 编辑入站规则
  • 添加规则:允许 TCP 8080 端口(或你项目使用的端口)

2. 开放系统防火墙(如 firewalld)

# CentOS
sudo firewall-cmd --permanent --add-port=8080/tcp
sudo firewall-cmd --reload

# Ubuntu(ufw)
sudo ufw allow 8080

✅ 六、测试访问

浏览器访问:

http://你的公网IP:8080

确保项目正常响应。


✅ 七、可选优化

1. 使用 Nginx 反向X_X(推荐用于生产)

安装 Nginx:

# Ubuntu
sudo apt install nginx -y

# CentOS
sudo yum install nginx -y

配置反向X_X(/etc/nginx/sites-available/myapp):

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;
    }
}

启用并重启 Nginx:

sudo systemctl enable nginx
sudo systemctl restart nginx

之后可通过 http://你的IP 直接访问,无需加端口。


2. 使用域名 + HTTPS(Let’s Encrypt)

配合 certbotnginx 可免费申请 SSL 证书。


✅ 八、常见问题排查

问题 解决方法
无法访问 8080 检查安全组、防火墙、Java 是否监听 0.0.0.0:8080
服务启动失败 systemctl status myappjournalctl -u myapp 查日志
内存不足 调整 JVM 参数:ExecStart=/usr/bin/java -Xms512m -Xmx1g -jar your-project.jar
文件权限错误 确保 jar 文件可执行:chmod +x your-project.jar

✅ 总结:持久化部署的关键点

功能 实现方式
后台运行 systemd 服务
开机自启 systemctl enable myapp
崩溃重启 Restart=always
日志管理 journalctl
X_X访问 安全组 + 防火墙 + Nginx

如需自动化部署,可结合 Jenkins + Git + Shell 脚本 实现 CI/CD。

如果你提供具体的项目类型(如 Spring Boot、Tomcat WAR 包等),我可以给出更精确的配置方案。

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