温馨提示×

debian怎么部署golang服务

小樊
42
2026-09-05 08:35:00
栏目: 编程语言

在 Debian 上部署 Golang 服务,通常分为 安装 Go、构建程序、运行服务、设为开机自启 几个步骤。下面给你一套生产环境常用方案。


一、安装 Go 环境

方式 1:官方二进制(推荐)

sudo apt update
sudo apt install -y wget

cd /tmp
wget https://go.dev/dl/go1.22.5.linux-amd64.tar.gz
sudo rm -rf /usr/local/go
sudo tar -C /usr/local -xzf go1.22.5.linux-amd64.tar.gz

配置环境变量:

echo 'export PATH=$PATH:/usr/local/go/bin' >> ~/.bashrc
source ~/.bashrc

验证:

go version

二、构建 Golang 服务

在你的项目目录:

cd myapp
go build -o myapp main.go

(建议生产环境加参数)

go build -ldflags="-s -w" -o myapp

三、部署程序

sudo mkdir -p /opt/myapp
sudo cp myapp /opt/myapp/
sudo cp -r config /opt/myapp/

四、用 systemd 管理(推荐)

1. 创建服务文件

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

示例:

[Unit]
Description=Golang App
After=network.target

[Service]
User=www-data
WorkingDirectory=/opt/myapp
ExecStart=/opt/myapp/myapp
Restart=always
Environment=GO_ENV=production

[Install]
WantedBy=multi-user.target

2. 启动服务

sudo systemctl daemon-reload
sudo systemctl enable myapp
sudo systemctl start myapp

3. 查看状态

sudo systemctl status myapp
journalctl -u myapp -f

五、使用 Nginx 反向代理(常见)

sudo apt install nginx
server {
    listen 80;
    server_name example.com;

    location / {
        proxy_pass http://127.0.0.1:8080;
        proxy_set_header Host $host;
    }
}
sudo nginx -t
sudo systemctl reload nginx

六、防火墙

sudo ufw allow 80
sudo ufw allow 443

七、常见部署方式对比

方式 适合场景
systemd 单机服务(最常用)
Docker 微服务 / CI
supervisor 老系统
k8s 大规模

如果你愿意,我可以:

  • 给你一个 Docker + Debian 部署示例
  • 帮你写 Go + systemd + Nginx 完整配置
  • 针对 Web / API / 后台任务 分别说明

你现在的 Go 服务是 Web 服务还是定时任务?

0 踩