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

在腾讯云服务器的 Linux 环境下部署 Java 项目并实现持久化运行(即服务不随终端关闭而终止),通常涉及以下几个关键步骤。以下是详细的操作流程:


✅ 一、准备工作

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

  • 登录 腾讯云控制台
  • 创建一台 CVM(云服务器),推荐选择:
    • 操作系统:Ubuntu 20.04 / CentOS 7/8
    • 安全组:开放 22(SSH)、80443 和你的应用端口(如 8080

使用 SSH 登录服务器:

ssh root@你的公网IP

✅ 二、安装必要环境

1. 更新系统包

# Ubuntu
sudo apt update && sudo apt upgrade -y

# CentOS
sudo yum update -y

2. 安装 Java(以 OpenJDK 为例)

# Ubuntu
sudo apt install openjdk-17-jdk -y

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

验证安装:

java -version
javac -version

建议使用 JDK 8/11/17,根据你的项目要求选择。


✅ 三、上传 Java 项目

方式1:上传 Jar 包(推荐 Spring Boot 项目)

假设你本地已打包好 myapp.jar

使用 scp 命令上传:

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

或使用 rz 命令(需先安装):

sudo apt install lrzsz -y   # Ubuntu
sudo yum install lrzsz -y   # CentOS
rz

方式2:从 Git 克隆代码并构建

git clone https://gitee.com/xxx/myproject.git
cd myproject
mvn clean package -DskipTests
cp target/*.jar ~/myapp.jar

✅ 四、持久化运行 Java 应用

Java 进程默认是前台运行,关闭终端后会中断。要实现持久化运行,推荐以下方式:


🔹 方法一:使用 nohup + &(简单轻量)

nohup java -jar myapp.jar > app.log 2>&1 &

说明:

  • nohup:忽略挂断信号,进程不会随终端退出而结束
  • >:重定向输出到文件
  • &:后台运行

查看进程:

ps aux | grep java

停止服务:

kill -9 $(pgrep -f myapp.jar)

⚠️ 缺点:无法自动重启,日志管理较弱。


🔹 方法二:使用 systemd(推荐,生产环境首选)

创建系统服务文件:

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

写入以下内容(根据实际情况修改路径和用户):

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

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

[Install]
WantedBy=multi-user.target

启用并启动服务:

sudo systemctl daemon-reload
sudo systemctl enable myapp.service    # 开机自启
sudo systemctl start myapp.service     # 启动服务

常用命令:

sudo systemctl status myapp        # 查看状态
sudo systemctl stop myapp          # 停止
sudo systemctl restart myapp       # 重启
sudo journalctl -u myapp -f        # 实时查看日志

✅ 优点:支持开机自启、崩溃自动重启、日志集成 journald。


🔹 方法三:使用 screentmux(临时调试用)

安装 screen:

sudo apt install screen -y

使用:

screen -S javaapp
java -jar myapp.jar
# 按 Ctrl+A, 再按 D 销毁会话(detach)

恢复会话:

screen -r javaapp

适合临时测试,不推荐生产环境。


✅ 五、配置防火墙和安全组

确保腾讯云控制台中:

  • 安全组规则允许访问你的应用端口(如 8080
  • 例如:添加入站规则,类型:自定义TCP,端口:8080,源:0.0.0.0/0

✅ 六、域名与反向(可选)

若想通过域名访问,可使用 Nginx 反向:

1. 安装 Nginx

sudo apt install nginx -y

2. 配置反向

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

内容示例:

server {
    listen 80;
    server_name yourdomain.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;
    }
}

启用站点:

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

✅ 七、其他建议

项目 建议
日志管理 使用 logbacklog4j2 输出到文件,配合 logrotate
JVM 参数 添加内存限制:-Xms512m -Xmx1g
监控 使用 top, htop, jstat, jstack
自动部署 结合 Jenkins / GitHub Actions / Shell 脚本

✅ 总结:推荐完整流程

  1. 腾讯云购买 CVM
  2. SSH 登录,安装 Java
  3. 上传 .jar 文件
  4. 使用 systemd 创建服务实现持久化运行
  5. 配置安全组开放端口
  6. (可选)配置 Nginx + 域名

如果你提供具体的项目类型(如 Spring Boot、普通 Web、是否使用数据库等),我可以给出更定制化的部署脚本和配置。欢迎继续提问!

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