# 下载最新版 Go (请替换为最新版本号)
wget https://golang.org/dl/go1.21.0.linux-amd64.tar.gz
# 解压到 /usr/local
sudo tar -C /usr/local -xzf go1.21.0.linux-amd64.tar.gz
# 设置环境变量
echo 'export PATH=$PATH:/usr/local/go/bin' >> ~/.bashrc
echo 'export GOPATH=$HOME/go' >> ~/.bashrc
source ~/.bashrc
# 验证安装
go version
# 在项目目录下构建 (可选参数)
go build -o myapp # 生成名为 myapp 的可执行文件
# 或者构建为静态链接的可执行文件 (适合容器化部署)
CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o myapp .
# 简单运行
./myapp
# 后台运行
nohup ./myapp > app.log 2>&1 &
创建服务文件 /etc/systemd/system/myapp.service
:
[Unit]
Description=My Go Application
After=network.target
[Service]
User=appuser
Group=appgroup
WorkingDirectory=/path/to/app
ExecStart=/path/to/app/myapp
Restart=always
RestartSec=10
KillSignal=SIGINT
SyslogIdentifier=myapp
Environment=ENV_VAR1=value1 ENV_VAR2=value2
[Install]
WantedBy=multi-user.target
然后启用并启动服务:
sudo systemctl daemon-reload
sudo systemctl enable myapp
sudo systemctl start myapp
# 查看状态
sudo systemctl status myapp
安装 Supervisor:
sudo apt-get install supervisor # Debian/Ubuntu
sudo yum install supervisor # CentOS/RHEL
创建配置文件 /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
environment=ENV_VAR1="value1",ENV_VAR2="value2"
然后更新并启动:
sudo supervisorctl reread
sudo supervisorctl update
sudo supervisorctl start myapp
创建 Dockerfile:
FROM golang:1.21-alpine AS builder
WORKDIR /app
COPY . .
RUN CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o myapp .
FROM alpine:latest
WORKDIR /app
COPY --from=builder /app/myapp .
EXPOSE 8080
CMD ["./myapp"]
构建并运行:
docker build -t myapp .
docker run -d -p 8080:8080 --name myapp_instance myapp
安装 Nginx 并配置 /etc/nginx/conf.d/myapp.conf
:
server {
listen 80;
server_name example.com;
location / {
proxy_pass http://localhost: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;
}
}
logrotate
管理日志文件pprof
内置性能分析htop
或 top
监控资源使用希望这个指南对您有所帮助!根据您的具体需求选择合适的部署方式。