在腾讯云轻量应用服务器(Lighthouse)上部署 Java 后端服务,其实是一个“从 0 到 1”搭建环境并让代码跑起来的过程。轻量服务器最大的优势是镜像丰富、网络直连、成本低,特别适合个人开发者或中小型项目。
下面我按实际操作的逻辑顺序,把步骤拆解清楚。假设你的 Java 后端是一个标准的 Spring Boot 项目,打包成 jar 包。
第一步:创建服务器与选择镜像
不要一上来就买裸机(CentOS/Ubuntu),那是给自己找麻烦。轻量服务器的核心卖点是“一键安装”。
-
购买实例:
- 地域选择离你用户最近的地方(比如华南-广州,华东-上海)。
- 配置建议:Java 服务比较吃内存,最低配 2核2G 起步,推荐 2核4G 或更高,否则 JVM 容易 OOM(内存溢出)。
- 带宽:如果流量不大,选固定带宽 3Mbps-5Mbps 即可;如果做视频或大文件下载,选按流量计费更划算。
-
关键步骤:选择镜像:
- 方案 A(推荐新手):Docker 镜像。
- 搜索关键词:“Java + Docker” 或 “Spring Boot + Docker”。
- 优点:环境预装好,开箱即用,迁移方便。
- 方案 B(传统方式):Linux 系统镜像 + 软件环境。
- 系统选 CentOS 7.9 或 Ubuntu 20.04/22.04 LTS。
- 在“软件镜像”标签页,勾选“LNMP”或“Java”相关的一键安装包。
- 注意:轻量服务器自带的“Java 环境”镜像通常只装了 JDK,没装 Tomcat 或容器化支持,你需要自己配。
- 方案 A(推荐新手):Docker 镜像。
我的建议:如果你熟悉 Docker,直接选 Docker 镜像,后续所有操作都在容器里,干净利落。如果不熟,选 Linux 镜像,然后手动装 JDK。
第二步:连接服务器 & 基础环境准备
通过控制台提供的“远程连接”功能(基于 Web 的 VNC 或 SSH),或者用本地终端 ssh root@<公网IP> 登录。
场景一:如果你选了 Linux 系统镜像
-
更新系统源:
yum update -y # CentOS apt-get update && apt-get upgrade -y # Ubuntu -
安装 JDK:
轻量服务器默认没有 JDK。推荐使用yum或apt安装 OpenJDK,比去 Oracle 官网下载快且稳定。# CentOS yum install java-11-openjdk-devel -y # Ubuntu apt install openjdk-11-jdk -y -
验证安装:
java -version javac -version确保版本符合你的项目要求(如 JDK 8, 11, 17)。
-
上传 Jar 包:
使用scp命令从本地上传:scp your-app.jar root@<公网IP>:/opt/app/在服务器上创建目录并赋予权限:
mkdir -p /opt/app chmod +x /opt/app/your-app.jar
场景二:如果你选了 Docker 镜像
直接跳过上述步骤,进入下一步。
第三步:启动 Java 服务
这是最关键的一步。很多人直接敲 java -jar xxx.jar,一旦窗口关闭或服务崩溃,程序就挂了。必须使用守护进程管理。
方法 A:使用 Systemd(推荐,适用于裸 Linux)
-
创建服务文件
/etc/systemd/system/myapp.service:[Unit] Description=My Spring Boot App After=network.target [Service] Type=simple User=root WorkingDirectory=/opt/app ExecStart=/usr/bin/java -Xms512m -Xmx1024m -jar /opt/app/your-app.jar --spring.profiles.active=prod Restart=on-failure RestartSec=10 [Install] WantedBy=multi-user.target注:
-Xms和-Xmx根据服务器内存调整,别设太大导致 OOM。 -
启用并启动服务:
systemctl daemon-reload systemctl enable myapp.service systemctl start myapp.service -
查看日志:
journalctl -u myapp.service -f
方法 B:使用 Docker(适用于 Docker 镜像)
-
将 Jar 包放入服务器某个目录,编写
Dockerfile:FROM openjdk:11-jre-slim WORKDIR /app COPY your-app.jar app.jar ENTRYPOINT ["java", "-Xmx512m", "-jar", "app.jar"] -
构建并运行:
docker build -t my-java-app . docker run -d --name myapp -p 8080:8080 my-java-app -
查看日志:
docker logs -f myapp
第四步:安全组与防火墙配置
很多新手部署完发现浏览器打不开,90% 是因为端口没开。
-
腾讯云控制台 – 安全组:
- 找到你的实例 -> 点击“安全组”标签 -> 编辑入站规则。
- 添加规则:协议 TCP,端口范围
8080(或你的后端端口),来源0.0.0.0/0(允许所有 IP)。 - 重要:如果是生产环境,建议限制来源 IP,不要全开。
-
服务器内部防火墙(如果存在):
- CentOS 7+ 默认有
firewalld或iptables。 - 检查是否放行端口:
firewall-cmd --list-ports # 看有没有 8080/tcp # 如果没有,执行: firewall-cmd --permanent --add-port=8080/tcp firewall-cmd --reload - 如果是 Ubuntu,可能用了
ufw:ufw allow 8080/tcp
- CentOS 7+ 默认有
小技巧:轻量服务器默认开启了云防火墙,有时会和系统防火墙冲突。优先在腾讯云控制台的安全组里操作,如果不行再检查系统内部防火墙。
第五步:域名解析与 HTTPS(可选但推荐)
现在通过 http://<公网IP>:8080 可以访问了。但直接用 IP 体验差,且不支持 HTTPS。
-
备案域名:
- 国内云服务器绑定域名必须备案。如果你有已备案的域名,直接解析。
- 如果没有,可以先不绑域名,先用 IP 测试。
-
DNS 解析:
- 在腾讯云 DNSPod 或其他 DNS 服务商处,添加 A 记录,指向你的轻量服务器公网 IP。
-
反向XX + HTTPS:
-
Java 后端通常不直接暴露给公网,而是通过 Nginx 反向XX。
-
在服务器上安装 Nginx:
yum install nginx -y -
修改
/etc/nginx/conf.d/default.conf: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; } } -
重启 Nginx:
systemctl restart nginx -
开放 80 端口(HTTP)和 443 端口(HTTPS)的安全组规则。
-
申请免费 SSL 证书(腾讯云控制台有“SSL 证书”服务,可申请免费 DV 证书),配置到 Nginx 中实现 HTTPS。
-
常见问题排查清单
-
Jar 包启动报错
Address already in use:- 说明端口被占用。查一下是谁占用了:
netstat -tuln | grep 8080,然后 kill 掉旧进程。
- 说明端口被占用。查一下是谁占用了:
-
数据库连接失败:
- 轻量服务器默认没有 MySQL。你可以:
- 在轻量服务器上单独装 MySQL(占用资源多)。
- 推荐:使用腾讯云云数据库 CDB(MySQL),内网互通,速度快且免运维。
- 修改 Spring Boot 配置文件中的
spring.datasource.url,指向云数据库的内网地址。
- 轻量服务器默认没有 MySQL。你可以:
-
内存不足 OOM:
- 检查 JVM 参数
-Xmx是否超过物理内存的 70%。 - 检查是否有其他进程(如 Redis、Nginx)也在争抢内存。
- 检查 JVM 参数
-
时间不同步:
- Java 应用对时间敏感。确保服务器时间准确:
timedatectl set-timezone Asia/Shanghai并同步 NTP。
- Java 应用对时间敏感。确保服务器时间准确:
总结
在腾讯云轻量应用服务器部署 Java 后端,核心流程就是:选对镜像 -> 装好 JDK/Docker -> 上传 Jar 包 -> Systemd/Docker 守护进程启动 -> 开安全组端口 -> (可选)Nginx 反代 + HTTPS。
对于个人或小团队,强烈建议使用 Docker 镜像 方案,避免环境污染,后续扩容或迁移到其他服务器时,只需复制 Dockerfile 和镜像即可,省心省力。
云技术博客