温馨提示×

centos golang配置最佳实践啥

小樊
47
2026-09-27 00:15:50
栏目: 编程语言

下面给你一份CentOS 下 Golang 配置的最佳实践(以 CentOS 7 / 8 / Stream 为例,覆盖安装、环境、目录结构、代理、构建与运维)。


一、安装方式(推荐)

✅ 官方二进制(最稳定、最推荐)

不要用 yum install golang(版本太旧)

# 以 1.22 为例
cd /usr/local/src
wget https://go.dev/dl/go1.22.5.linux-amd64.tar.gz
rm -rf /usr/local/go
tar -C /usr/local -xzf go1.22.5.linux-amd64.tar.gz

二、环境变量配置(重点)

1️⃣ 全局配置(推荐)

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

# 代理(国内必配)
export GOPROXY=https://goproxy.cn,direct
export GOSUMDB=sum.golang.org

# 开启模块
export GO111MODULE=on
source /etc/profile
go version

三、目录结构最佳实践

✅ GOPATH(非必须但推荐保留)

/opt/gopath
├── bin
├── pkg
└── src

✅ 项目目录(现代 Go 项目)

/opt/apps/your-project
├── cmd/
│   └── server/
│       └── main.go
├── internal/
├── pkg/
├── config/
├── go.mod
├── go.sum
└── Makefile

四、Go Module 最佳实践

go mod init github.com/yourname/project
go mod tidy

⚠️ 注意:

  • 不要提交 vendor/(除非离线部署)
  • go.sum 必须提交

五、国内加速(关键)

go env -w GOPROXY=https://goproxy.cn,direct
go env -w GOSUMDB=off   # 如公司内网

查看:

go env

六、编译与运行

编译(生产)

CGO_ENABLED=0 GOOS=linux go build -o server cmd/server/main.go

运行

./server

七、systemd 托管(生产必备)

vim /etc/systemd/system/your-app.service
[Unit]
Description=Go App
After=network.target

[Service]
User=app
WorkingDirectory=/opt/apps/your-project
ExecStart=/opt/apps/your-project/server
Restart=always

[Install]
WantedBy=multi-user.target
systemctl daemon-reload
systemctl enable your-app
systemctl start your-app

八、日志与监控

  • 日志:写文件 or systemd journal
  • 监控:pprof + Prometheus
  • 限核:GOMAXPROCS
export GOMAXPROCS=4

九、安全建议

  • ✅ 非 root 用户运行
  • ✅ 禁用 CGO(容器/微服务)
  • ✅ 定期升级 Go 版本
  • ✅ go vet / golangci-lint

十、最小生产示例

go mod init demo
go build -o app main.go
./app

如果你愿意,我可以:

  • ✅ 给你 CentOS + Docker Go 最佳实践
  • ✅ 给你 Go 项目 Makefile 模板
  • ✅ 按 Web / 微服务 / CLI 场景配置

你现在是 学习 / 生产 / 容器 哪种场景?

0 踩