速卖通素材
努力

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

服务器

在腾讯云服务器(Linux 环境)上持久化部署 Java 项目,通常是指将 Java Web 应用(如 Spring Boot、Java EE 项目等)部署为长期运行的服务,并确保其在系统重启或崩溃后仍能自动恢复。以下是完整的部署流程和最佳实践。


✅ 一、准备工作

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

  • 登录 腾讯云控制台
  • 购买 CVM 实例(推荐:CentOS 7+/Ubuntu 20.04+)
  • 获取公网 IP 和登录凭证(密码或密钥)

使用 SSH 登录:

ssh root@your-server-ip

✅ 二、环境搭建

1. 安装 JDK(以 OpenJDK 为例)

Ubuntu/Debian:

sudo apt update
sudo apt install openjdk-17-jdk -y
java -version

CentOS/RHEL:

sudo yum install java-17-openjdk-devel -y
java -version

推荐使用 JDK 8 / 11 / 17,根据项目需求选择。


2. 安装并配置防火墙(开放端口)

例如你的 Java 项目运行在 8080 端口:

# Ubuntu 使用 ufw
sudo ufw allow 8080

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

同时在腾讯云 安全组规则 中放行对应端口(非常重要!)


✅ 三、上传 Java 项目

方式 1:上传 JAR 包(推荐用于 Spring Boot)

将本地打包好的 app.jar 上传到服务器:

scp app.jar root@your-server-ip:/root/app/

方式 2:使用 Git 拉取代码 + Maven 构建

git clone https://gitee.com/your-repo/java-project.git
cd java-project
mvn clean package -DskipTests
cp target/app.jar /opt/app/

✅ 四、持久化运行 Java 项目(关键步骤)

为了让 Java 程序在后台持续运行且开机自启,推荐使用 systemd 服务。

创建 systemd 服务文件

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

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

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

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

[Install]
WantedBy=multi-user.target

启动并设置开机自启

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

# 启动服务
sudo systemctl start myapp

# 设置开机自启
sudo systemctl enable myapp

# 查看状态
sudo systemctl status myapp

✅ 五、查看日志

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

# 查看最近的日志
sudo journalctl -u myapp.service --since "1 hour ago"

✅ 六、可选优化

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

安装 Nginx:

sudo apt install nginx    # Ubuntu
sudo yum install nginx    # CentOS

配置反向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 ln -s /etc/nginx/sites-available/myapp /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx

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

使用 Certbot 配置免费 SSL:

sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d your-domain.com

✅ 七、常用命令总结

功能 命令
启动服务 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

✅ 注意事项

  1. 不要直接用 java -jar 在前台运行,容易被中断。
  2. 使用 systemd 是 Linux 下最标准的守护进程管理方式。
  3. 确保 安全组 放行了 80、443、8080 等端口。
  4. 生产环境建议创建非 root 用户运行 Java 应用,提高安全性。
  5. 可结合 Jenkins、Docker 进一步自动化部署(进阶)。

✅ 示例目录结构

/opt/app/
├── app.jar
└── config/          # 配置文件(application.yml 等)

如有需要,可以进一步集成 DockerJenkins 自动部署流水线


如果你提供具体项目类型(如 Spring Boot、Tomcat WAR、多模块 Maven 项目等),我可以给出更详细的部署脚本。欢迎补充!

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