温馨提示×

centos golang如何部署

小樊
44
2026-09-29 23:38:07
栏目: 编程语言

下面给你一套在 CentOS 上部署 Golang 应用的常见、可落地方案,从环境准备 → 编译 → 运行 → 生产化逐步说明。


一、CentOS 环境准备

1. 更新系统

sudo yum update -y

2. 安装基础工具

sudo yum install -y wget git gcc

二、安装 Golang(推荐方式)

方式一:官方二进制安装(推荐)

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

配置环境变量:

vim ~/.bashrc

添加:

export PATH=$PATH:/usr/local/go/bin
export GOPATH=$HOME/go
export PATH=$PATH:$GOPATH/bin

生效:

source ~/.bashrc

验证:

go version

三、部署 Golang 项目

1. 上传代码

git clone https://github.com/your/project.git
cd project

2. 安装依赖

go mod tidy

3. 编译(Linux 可执行文件)

go build -o app main.go

如果是交叉编译(在 Windows/Mac 上):

GOOS=linux GOARCH=amd64 go build -o app

四、运行 Golang 程序

直接运行(测试)

./app

⚠️ 关闭终端就会退出


五、生产环境部署(重要)

✅ 方式一:systemd(最常用)

1. 创建服务文件

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

示例:

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

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

[Install]
WantedBy=multi-user.target

2. 启动服务

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

3. 查看状态

systemctl status myapp
journalctl -u myapp -f

✅ 方式二:Nginx 反代(Web 服务)

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

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

六、防火墙 & 端口

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

七、常见部署结构(推荐)

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

八、常见问题

1. 缺少 glibc

使用静态编译:

CGO_ENABLED=0 go build -o app

2. 权限问题

chmod +x app

九、进阶(可选)

  • Docker 部署
  • supervisor
  • CI/CD(GitLab / Jenkins)
  • 多实例 + 负载均衡

如果你愿意,可以告诉我:

  • ✅ CentOS 版本(7 / 8 / Stream)
  • ✅ 是否是 Web 服务
  • ✅ 是否用 Docker

我可以给你更精确的部署方案。

0 踩