Golang在Linux系统的部署方式如下:
安装Go
go1.x.x.linux-amd64.tar.gz
),解压至/usr/local
,配置环境变量(GOROOT
、GOPATH
、PATH
)并验证go version
。sudo apt install golang-go
,适合快速部署非最新版本。配置开发环境(可选)
sudo apt install git
,用于代码管理。GOOS=linux GOARCH=amd64 go build -o myapp
,生成静态二进制文件。scp
或rsync
传输至服务器指定目录。chmod +x myapp && ./myapp
,后台运行可使用nohup
:nohup ./myapp > app.log 2>&1 &
/etc/systemd/system/myapp.service
:[Unit]
Description=My Go App
After=network.target
[Service]
User=appuser
WorkingDirectory=/path/to/app
ExecStart=/path/to/app/myapp
Restart=always
Environment="ENV_VAR=value"
[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable myapp
sudo systemctl start myapp
sudo apt install supervisor
。/etc/supervisor/conf.d/myapp.conf
:[program:myapp]
command=/path/to/app/myapp
directory=/path/to/app
user=appuser
autostart=true
autorestart=true
stderr_logfile=/var/log/myapp.err.log
stdout_logfile=/var/log/myapp.out.log
sudo supervisorctl update && sudo supervisorctl start myapp
。Dockerfile
:FROM golang:alpine AS builder
WORKDIR /app
COPY . .
RUN go build -o myapp .
FROM alpine
WORKDIR /app
COPY --from=builder /app/myapp .
CMD ["./myapp"]
docker build -t myapp .
docker run -d -p 8080:8080 --name myapp myapp
appuser
)对应用目录有读写权限。ufw
)中开放对应端口。logrotate
或集中式日志系统(如ELK)处理应用日志。根据实际需求选择部署方式,生产环境推荐使用systemd
或Docker
,兼顾稳定性和可维护性。