在 Debian 上部署 Golang 项目,通常可以按下面 标准流程 来做。我按「从零开始」给你一个完整示例,适合大多数 Web / 后端服务场景。
sudo apt update && sudo apt upgrade -y
sudo apt install -y wget curl git unzip
https://go.dev/dl/
例如当前最新是 go1.22.4
wget https://go.dev/dl/go1.22.4.linux-amd64.tar.gz
sudo rm -rf /usr/local/go
sudo tar -C /usr/local -xzf go1.22.4.linux-amd64.tar.gz
编辑:
nano ~/.bashrc
添加:
export PATH=$PATH:/usr/local/go/bin
export GOPATH=$HOME/go
export PATH=$PATH:$GOPATH/bin
生效:
source ~/.bashrc
go version
scp -r your_project/ user@server:/opt/your_project
cd /opt
git clone https://github.com/yourname/your_project.git
进入项目目录:
cd /opt/your_project
go mod tidy
go build -o app main.go
如果是 Web 项目,通常是
main.go
./app
nohup ./app > app.log 2>&1 &
sudo nano /etc/systemd/system/myapp.service
内容示例:
[Unit]
Description=Golang App
After=network.target
[Service]
User=root
WorkingDirectory=/opt/your_project
ExecStart=/opt/your_project/app
Restart=always
Environment=GO_ENV=production
[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl start myapp
sudo systemctl enable myapp
sudo systemctl status myapp
sudo apt install nginx -y
server {
listen 80;
server_name example.com;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
重载:
sudo nginx -t
sudo systemctl reload nginx
sudo apt install ufw
sudo ufw allow 80
sudo ufw allow 443
sudo ufw enable
lsof -i :8080
chmod +x app
确保 systemd 服务中 Environment= 已配置
✅ 安装 Go
✅ 拉取 / 上传代码
✅ go build
✅ systemd 管理
✅ Nginx 反向代理
如果你愿意,可以告诉我:
我可以给你更精确的部署方案。