直接在腾讯云轻量服务器上部署fiber应用可行,但必须处理端口暴露(控制台防火墙放行)、进程守护(systemd配置启用并启动)和静态资源路径(用绝对路径或os.executable推导),同时需在服务器安装go并确保交叉编译匹配架构(x86_64或aarch64)。

直接在腾讯云轻量服务器上部署 Fiber 应用,不需要 Docker 或 Nginx 反向代理也能跑通,但必须处理好端口暴露、进程守护和静态资源路径这三件事。其他步骤都是锦上添花。
确认 Go 环境与编译目标平台
轻量服务器默认不带 Go,得自己装;而且不能直接传本地 main 二进制(尤其 macOS 或 Windows 编译的),必须在目标系统或交叉编译时指定 GOOS=linux GOARCH=amd64(或 arm64,看轻量实例 CPU 架构)。
- 登录轻量服务器后执行
uname -m查架构:常见是x86_64(对应amd64)或aarch64(对应arm64) - 推荐在服务器上直接编译:运行
go version,若无输出就先装 Go(如用curl -L https://go.dev/dl/go1.25.1.linux-amd64.tar.gz | sudo tar -C /usr/local -xz,再配PATH) - 确保项目
go.mod中依赖已拉取完整,go build -o server .生成可执行文件
开放轻量服务器防火墙端口
腾讯云轻量的防火墙是独立于系统 iptables 的,必须在控制台显式放行端口,否则 app.Listen(":3000") 绑定成功也收不到外部请求。
- 进入轻量服务器控制台 →「防火墙」→「添加规则」
- 协议类型选
TCP,端口范围填具体端口(如3000)或范围(如3000-3005),源 IP 建议限制为0.0.0.0/0(测试用)或你自己的 IP(生产建议) - 别漏掉
HTTP(80)和HTTPS(443)——如果后续用反代或 Let's Encrypt,这两个端口也得开
用 systemd 守护进程并自动启动
直接后台运行 ./server & 不可靠:SSH 断开、系统重启后服务就没了;systemd 是最稳的方案,且腾讯云轻量默认支持。
- 新建 service 文件:
sudo vim /etc/systemd/system/fiber-app.service - 内容示例(按实际路径调整):
[Unit] Description=Fiber Web App After=network.target [Service] Type=simple User=ubuntu WorkingDirectory=/home/ubuntu/my-fiber-app ExecStart=/home/ubuntu/my-fiber-app/server Restart=always RestartSec=10 StandardOutput=journal StandardError=journal [Install] WantedBy=multi-user.target
- 启用并启动:
sudo systemctl daemon-reload && sudo systemctl enable fiber-app && sudo systemctl start fiber-app - 查状态:
sudo systemctl status fiber-app,重点关注Active: active (running)和最近日志(journalctl -u fiber-app -n 20 -f)
静态文件路径与反向代理的取舍
Fiber 的 app.Static("/", "./public") 默认读取相对路径,但 systemd 启动时工作目录是 service 文件里写的 WorkingDirectory,不是二进制所在目录——这点极易出错。
- 要么统一用绝对路径:
app.Static("/static", "/home/ubuntu/my-fiber-app/public") - 要么在代码里用
os.Executable()推导根目录(更健壮) - 如果要用域名 + HTTPS,别硬扛 TLS:直接用 Nginx 反代到
127.0.0.1:3000,Fiber 专注业务逻辑;此时记得关掉 Fiber 的ListenTLS 配置,避免重复加解密
最容易被忽略的是:轻量服务器重装系统后,防火墙规则会重置,且 systemd service 不会自动恢复(除非你 enable 过)。每次系统更新或重启后,第一反应不该是“为什么网页打不开”,而是先 sudo systemctl status fiber-app 和查控制台防火墙是否还开着。











