Golang在CentOS上如何部署
导读:在 CentOS 上部署 Golang 的完整流程 一 安装 Go 环境 方式一 YUM 安装(快速、版本可能较旧) 执行:sudo yum install -y golang 验证:go version 方式二 二进制安装(指定版...
在 CentOS 上部署 Golang 的完整流程
一 安装 Go 环境
- 方式一 YUM 安装(快速、版本可能较旧)
- 执行:
sudo yum install -y golang - 验证:
go version
- 执行:
- 方式二 二进制安装(指定版本、推荐)
- 安装工具:
sudo yum -y install wget git - 下载(示例为 go1.21.6,可按需替换版本):
wget https://golang.org/dl/go1.21.6.linux-amd64.tar.gz -P /usr/local/src - 解压:
sudo tar -C /usr/local -xzf /usr/local/src/go1.21.6.linux-amd64.tar.gz - 配置环境变量(全局生效):
echo 'export GOROOT=/usr/local/go' | sudo tee -a /etc/profile echo 'export PATH=$PATH:$GOROOT/bin' | sudo tee -a /etc/profile source /etc/profile - 验证:
go version(应输出版本号)
- 安装工具:
二 配置模块与国内代理
- 启用 Go Modules(Go 1.11+ 默认开启,建议保持):
go env -w GO111MODULE=on - 设置国内模块代理(提升拉取依赖速度):
go env -w GOPROXY=https://goproxy.cn,direct - 可选:设置常用全局变量(写入
~/.bashrc或/etc/profile)echo 'export GOPATH=$HOME/go' > > ~/.bashrc echo 'export PATH=$PATH:$GOPATH/bin' > > ~/.bashrc source ~/.bashrc - 说明:现代 Go 开发以模块为主,GOPATH 非必需,但设置后可方便使用
go install等命令。
三 编译与运行示例
- 本地或服务器上创建测试程序:
cat > main.go < < 'EOF'package main import "fmt" func main() { fmt.Println("Hello, 世界") } EOF - 构建:
go build -o myapp main.go - 运行:
./myapp(预期输出:Hello, 世界) - 交叉编译示例(在 macOS/Linux 上为 Linux amd64 构建):
GOOS=linux GOARCH=amd64 go build -o dist/app-linux-amd64 main.go。
四 部署为系统服务
- 使用 Systemd 管理(推荐)
- 创建服务文件:
sudo tee /etc/systemd/system/myapp.service < < 'EOF'[Unit] Description=My Go Application After=network.target [Service] User=youruser Group=yourgroup ExecStart=/opt/myapp/myapp Restart=always Environment=GO_ENV=production [Install] WantedBy=multi-user.target EOF - 启动与开机自启:
sudo systemctl daemon-reload sudo systemctl start myapp sudo systemctl enable myapp sudo systemctl status myapp sudo journalctl -u myapp -f
- 创建服务文件:
- 使用 Supervisor(CentOS 9 常见替代方案)
- 安装:
sudo yum install -y supervisor - 配置:
sudo tee /etc/supervisord.d/app.ini < < 'EOF'[program:app] directory=/opt/myapp command=/opt/myapp/myapp autostart=true autorestart=true stderr_logfile=/opt/myapp/log/app.err stdout_logfile=/opt/myapp/log/app.log environment=ENV_VAR1="value1" EOF - 启动:
sudo systemctl start supervisord & & sudo systemctl enable supervisord - 常用:
supervisorctl start|stop|restart app。
- 安装:
五 网络与反向代理
- 防火墙放行端口(示例为 8080):
sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent sudo firewall-cmd --reload - Nginx 反向代理(可选,端口 80 转发到 8080)
- 安装:
sudo yum install -y nginx - 配置:
sudo tee /etc/nginx/conf.d/myapp.conf < < 'EOF'server { listen 80; server_name yourdomain.com; location / { proxy_pass http://127.0.0.1:8080; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } } EOF - 生效:
sudo systemctl reload nginx & & sudo systemctl enable nginx。
- 安装:
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Golang在CentOS上如何部署
本文地址: https://pptw.com/jishu/776689.html
