下面给你一套在 CentOS 上部署 Golang 应用的常见、可落地方案,从环境准备 → 编译 → 运行 → 生产化逐步说明。
sudo yum update -y
sudo yum install -y wget git gcc
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
git clone https://github.com/your/project.git
cd project
go mod tidy
go build -o app main.go
如果是交叉编译(在 Windows/Mac 上):
GOOS=linux GOARCH=amd64 go build -o app
./app
⚠️ 关闭终端就会退出
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
sudo systemctl daemon-reload
sudo systemctl start myapp
sudo systemctl enable myapp
systemctl status myapp
journalctl -u myapp -f
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/
使用静态编译:
CGO_ENABLED=0 go build -o app
chmod +x app
如果你愿意,可以告诉我:
我可以给你更精确的部署方案。