温馨提示×

CentOS怎样部署Golang项目

小樊
36
2026-08-29 16:08:41
栏目: 编程语言

下面给你一套在 CentOS 上部署 Golang 项目的常见、实战型流程,适用于 CentOS 7 / 8 / Stream。你可以按需要选择 直接运行用 systemd 管理


一、准备环境(CentOS)

1️⃣ 更新系统

sudo yum update -y

2️⃣ 安装必要工具

sudo yum install -y wget git curl

二、安装 Golang

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

1️⃣ 下载 Golang

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

版本可按需替换

2️⃣ 解压

sudo rm -rf /usr/local/go
sudo tar -C /usr/local -xzf go1.22.2.linux-amd64.tar.gz

3️⃣ 配置环境变量

编辑:

sudo vim /etc/profile

追加:

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

生效:

source /etc/profile

4️⃣ 验证

go version

三、上传 / 拉取 Golang 项目

方式一:Git 拉取(推荐)

cd /opt
git clone https://github.com/yourname/yourproject.git
cd yourproject

方式二:本地上传

scp main.go user@centos_ip:/opt/yourproject

四、编译 Golang 项目

1️⃣ 初始化(如果没 go.mod)

go mod init yourproject

2️⃣ 下载依赖

go mod tidy

3️⃣ 编译

go build -o app

或直接运行测试:

go run main.go

五、运行项目(测试)

./app

常见端口:

  • HTTP:8080
  • HTTPS:443

确保防火墙放行端口:

防火墙(firewalld)

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

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

1️⃣ 创建服务文件

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

内容示例:

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

[Service]
User=root
WorkingDirectory=/opt/yourproject
ExecStart=/opt/yourproject/app
Restart=always
RestartSec=5
Environment=GO_ENV=production

[Install]
WantedBy=multi-user.target

2️⃣ 启动并设置开机自启

sudo systemctl daemon-reload
sudo systemctl start mygo
sudo systemctl enable mygo

3️⃣ 查看状态

systemctl status mygo
journalctl -u mygo -f

七、Nginx 反向代理(可选)

1️⃣ 安装 Nginx

sudo yum install -y nginx

2️⃣ 配置反向代理

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;
    }
}

3️⃣ 启动

systemctl start nginx
systemctl enable nginx

八、常见问题

❓ 编译报错 permission denied

chmod +x app

❓ 端口被占用

netstat -tunlp | grep 8080

❓ 无法访问

  • 检查防火墙
  • 检查云服务器安全组
  • 检查监听地址是否为 0.0.0.0

九、推荐目录结构

/opt/yourproject
├── app
├── main.go
├── config.yaml
└── logs

如果你愿意,我可以 根据你的项目类型(Web / API / 微服务 / Gin / Fiber)给你一份定制部署方案,或者帮你写 Docker + systemd 的完整部署脚本

0