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

在腾讯云服务器的 Linux 环境下部署 Java 项目并实现持久化运行(即服务开机自启、崩溃自动重启等),通常包括以下几个步骤。下面以常见的 Spring Boot 项目为例,使用 systemd 方式进行持久化部署。


✅ 一、准备工作

1. 购买并登录腾讯云服务器

  • 选择 CVM 实例(如 CentOS 7/8、Ubuntu 20.04+)
  • 获取公网 IP、用户名(如 root 或 ubuntu)、密码或密钥
  • 使用 SSH 登录:
    ssh root@your_server_ip

2. 安装必要的环境

(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

(2)上传 Java 项目 Jar 包

将你的 xxx.jar 文件上传到服务器,推荐使用 scp

scp your-project.jar root@your_server_ip:/root/app/

或使用 FTP 工具(如 FileZilla)上传。


✅ 二、创建应用目录并放置 jar 包

mkdir -p /opt/myapp
cp /root/app/your-project.jar /opt/myapp/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: 运行用户(建议创建专用用户如 appuser 更安全)
  • WorkingDirectory: 应用工作目录
  • ExecStart: 启动命令
  • Restart=always: 崩溃后自动重启
  • RestartSec=10: 重启前等待 10 秒

2. 重载 systemd 配置

sudo systemctl daemon-reexec
sudo systemctl daemon-reload

✅ 四、启动并设置开机自启

# 启动服务
sudo systemctl start myapp

# 查看状态
sudo systemctl status myapp

# 设置开机自启
sudo systemctl enable myapp

# 停止服务
sudo systemctl stop myapp

# 重启服务
sudo systemctl restart myapp

✅ 五、查看日志(调试用)

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

# 查看最近 100 行日志
sudo journalctl -u myapp.service -n 100

✅ 六、配置防火墙和安全组(重要!)

1. 腾讯云控制台配置安全组

  • 进入 腾讯云 CVM 控制台
  • 找到你的实例 → 安全组 → 添加规则
  • 放行你的应用端口(如 8080)

示例规则:

  • 协议类型:TCP
  • 端口:8080
  • 源 IP:0.0.0.0/0(或限制为特定 IP)

2. 本地防火墙(如 firewalld 或 ufw)

CentOS(firewalld):

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

Ubuntu(ufw):

sudo ufw allow 8080

✅ 七、(可选)反向X_X(Nginx)

若想通过域名访问或使用 80 端口,可部署 Nginx 反向X_X。

1. 安装 Nginx

# Ubuntu
sudo apt install nginx -y

# CentOS
sudo yum install nginx -y

2. 配置反向X_X

编辑配置文件:

sudo vim /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;
    }
}

启用站点:

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

✅ 八、域名绑定与备案(可选)

  • 将域名解析到服务器公网 IP
  • 若在我国大陆使用 80/443 端口,需完成 ICP 备案

✅ 九、总结:关键点

步骤 内容
✅ 环境 JDK 安装正确
✅ 部署 jar 包上传并测试运行
✅ 持久化 使用 systemd 服务管理
✅ 自启 systemctl enable myapp
✅ 日志 journalctl 查看输出
✅ 安全组 腾讯云控制台放行端口
✅ 防火墙 本地防火墙开放端口
✅ 域名 Nginx + 域名解析(可选)

🚀 附加建议

  • 使用 .env 或外部配置文件管理数据库连接等敏感信息
  • 使用 nohupscreen 仅适合临时测试,不推荐生产
  • 生产环境建议使用非 root 用户运行 Java 应用
  • 结合 Jenkins/GitLab CI 实现自动化部署(进阶)

如有具体项目结构或框架(如 Spring Boot、Tomcat WAR 包等),可提供更详细指导。欢迎补充细节!

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