温馨提示×

centos中golang怎样部署

小樊
46
2026-10-05 18:40:21
栏目: 编程语言

在 CentOS 上部署 Golang(Go)应用,通常分为「环境准备 → 编译 → 部署运行 → 进程管理 → 可选反向代理」几步。下面给你一套实用、可生产使用的做法。


一、CentOS 安装 Go 环境

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

# 查看最新版本
# https://go.dev/dl/

cd /usr/local
wget https://go.dev/dl/go1.22.3.linux-amd64.tar.gz
tar -C /usr/local -xzf go1.22.3.linux-amd64.tar.gz

配置环境变量:

vim /etc/profile.d/go.sh
export PATH=$PATH:/usr/local/go/bin
export GOPATH=/root/go
export PATH=$PATH:$GOPATH/bin

生效:

source /etc/profile.d/go.sh
go version

二、编译 Go 程序(交叉编译更方便)

本地编译(CentOS 上)

cd your_project
go build -o app main.go

在 Mac / Windows 编译 Linux 版本

CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o app main.go

✅ 建议:CGO_ENABLED=0,避免依赖系统库


三、上传并运行程序

scp app user@centos_ip:/opt/app/
ssh user@centos_ip

运行:

cd /opt/app
chmod +x app
./app

四、使用 systemd 管理(生产推荐)

1. 创建 service

vim /etc/systemd/system/goapp.service

示例:

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

[Service]
User=root
WorkingDirectory=/opt/app
ExecStart=/opt/app/app
Restart=always

[Install]
WantedBy=multi-user.target

2. 启动

systemctl daemon-reload
systemctl enable goapp
systemctl start goapp
systemctl status goapp

五、防火墙 & 端口

firewall-cmd --permanent --add-port=8080/tcp
firewall-cmd --reload

六、使用 Nginx 反向代理(可选)

yum install nginx -y
server {
    listen 80;
    server_name example.com;

    location / {
        proxy_pass http://127.0.0.1:8080;
    }
}
systemctl enable nginx
systemctl start nginx

七、日志管理(建议)

journalctl -u goapp -f

或自己写日志文件:

log.SetOutput(os.Stdout)

八、常见部署结构

/opt/app/
 ├── app
 ├── config.yaml
 └── logs/

九、总结(最简流程)

本地编译
→ 上传 CentOS
→ systemd 管理
→ Nginx 反代

如果你愿意,我可以:

  • ✅ 给你 Docker 部署方案
  • ✅ 写 完整 systemd + Nginx 配置
  • ✅ 针对 Web / API / 定时任务 给不同方案

直接告诉我你的 Go 项目类型 即可。

0 踩