在腾讯云服务器(Linux 环境)下部署 Java 项目并实现持久化运行,通常涉及以下几个关键步骤。以下是详细的操作指南:
✅ 一、准备工作
-
购买并登录腾讯云 CVM 实例
- 操作系统建议:CentOS 7+/Ubuntu 20.04+
- 开放端口(安全组):
- SSH(22)
- HTTP/HTTPS(80/443)
- 自定义端口(如 8080)
-
连接服务器
ssh root@你的公网IP
✅ 二、安装基础环境
1. 安装 JDK
# 查看是否已安装
java -version
# 若未安装,以 CentOS 为例使用 yum 安装 OpenJDK 11
sudo yum install -y java-11-openjdk-devel
# 或者手动上传 Oracle JDK 并配置环境变量
推荐使用 OpenJDK,避免许可证问题。
2. 配置 JAVA_HOME(可选但推荐)
编辑 /etc/profile:
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk
export PATH=$PATH:$JAVA_HOME/bin
然后生效:
source /etc/profile
✅ 三、上传 Java 项目
假设你有一个打包好的 JAR 文件(如 myapp.jar)。
方法 1:使用 SCP 上传本地文件
scp myapp.jar root@你的公网IP:/root/
方法 2:使用 Git 克隆项目(适合从代码构建)
git clone https://gitee.com/xxx/myproject.git
cd myproject
mvn clean package -DskipTests
✅ 四、持久化运行 Java 应用
为了让 Java 程序在后台长期运行且不因终端关闭而终止,有以下几种方式:
✅ 方式一:使用 nohup + &(简单实用)
nohup java -jar myapp.jar > app.log 2>&1 &
nohup:忽略挂起信号,即使退出终端也继续运行>:重定向输出到日志文件&:后台运行
查看进程:
ps aux | grep java
停止应用:
pkill -f myapp.jar # 或 kill 进程ID
✅ 方式二:使用 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 RestartSec=10 StandardOutput=journal StandardError=journal WorkingDirectory=/root [Install] WantedBy=multi-user.target -
启动服务:
sudo systemctl daemon-reload sudo systemctl start myapp sudo systemctl enable myapp # 开机自启 -
查看状态和日志:
sudo systemctl status myapp sudo journalctl -u myapp -f # 实时查看日志
✅ 方式三:使用 screen 或 tmux(临时调试用)
# 安装 screen
sudo yum install screen -y
# 创建会话
screen -S java-app
# 在会话中运行
java -jar myapp.jar
# 按 Ctrl+A, 再按 D 脱离会话
# 重新连接:screen -r java-app
不推荐用于生产,适合测试阶段。
✅ 五、配置反向(可选,配合 Nginx)
若使用 8080 端口,可通过 Nginx 反向到 80 端口。
-
安装 Nginx:
sudo yum install nginx -y sudo systemctl start nginx sudo systemctl enable nginx -
配置站点(
/etc/nginx/conf.d/myapp.conf):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 nginx -t sudo systemctl reload nginx
✅ 六、数据库与持久化数据
如果你的 Java 项目依赖 MySQL、Redis 等:
- 可在同台服务器安装,或使用腾讯云 云数据库 CDB / CRS
- 数据库存储路径应挂载独立云硬盘(CBS),确保数据持久化
示例:挂载云硬盘并作为数据目录(如
/data)
✅ 七、安全性建议
-
不要用 root 用户运行服务(创建专用用户)
useradd -m -s /bin/bash javauser chown -R javauser:javauser /opt/myapp.jar -
修改
systemd服务中的User=javauser -
防火墙限制:
sudo firewall-cmd --permanent --add-port=8080/tcp sudo firewall-cmd --reload -
使用 HTTPS(Let’s Encrypt 免费证书)
✅ 八、监控与日志
- 日志轮转(logrotate)
- 使用
crontab定期备份日志 - 结合腾讯云 云监控 查看 CPU、内存等指标
✅ 总结:推荐流程(生产级)
| 步骤 | 操作 |
|---|---|
| 1 | 购买 CVM + 配置安全组 |
| 2 | 安装 JDK、MySQL、Nginx |
| 3 | 上传 JAR 包 |
| 4 | 使用 systemd 创建服务 |
| 5 | 配置 Nginx 反向 |
| 6 | 设置开机自启、日志管理 |
| 7 | 域名解析 + SSL 证书 |
如有需要,可以提供你的项目类型(Spring Boot、普通 Java Web 等),我可以给出更具体的部署脚本或配置示例。
云计算