Files
easygoadmin-wiki/EasyGoAdmin_Gin_NaiveVue/zh/deploy/backend.md
T
2026-10-25 17:24:27 +08:00

2.1 KiB

11.4 后端部署

:::tip 概述 后端是单二进制:make build 产出可执行文件,配合配置与环境变量运行。生产用进程守护(systemd)+ Nginx 反代,容器场景见 11.6 Docker 生产部署。 :::

构建

make build          # 编译到 bin/
make.bat build      # Windows

# 等价(压缩二进制)
CGO_ENABLED=0 go build -ldflags="-s -w" -o bin/admin-server ./cmd/api

交叉编译(Linux 服务器):

GOOS=linux GOARCH=amd64 CGO_ENABLED=0 go build -ldflags="-s -w" -o bin/admin-server ./cmd/api

运行所需文件

内容 说明
二进制 bin/admin-server
config/ config.yaml(或纯环境变量覆盖)
resource/ ip2region 数据、验证码字体等运行资源
upload/ 上传根目录(可挂载,需可写)
log/ 日志目录(可写)

systemd 示例

[Unit]
Description=EasyGoAdmin
After=network.target mysql.service redis.service

[Service]
EnvironmentFile=/etc/easygoadmin/.env
WorkingDirectory=/opt/easygoadmin
ExecStart=/opt/easygoadmin/bin/admin-server
Restart=always
RestartSec=5

[Install]
WantedBy=multi-user.target

优雅关闭由应用自身处理(SIGTERM 触发:停 HTTP → 停任务 → 关 DB → 关 Redis,在途请求上限 30s)——systemd 的 TimeoutStopSec 建议 ≥ 35s。

应用 http.Server 内置 ReadHeaderTimeout: 10s(防 Slowloris 慢速头攻击),无需在网关之外额外配置。

Nginx 反代要点

location /api/ {
    proxy_pass http://127.0.0.1:8000;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}

真实 IP 依赖 X-Forwarded-For:应用只信任 api.proxyIps 受信列表内的来源——Nginx 与应用同机/受信网段时才生效。

上线验证

curl https://your-domain/api/health     # 经 TLS 的健康检查
journalctl -u easygoadmin -f           # 启动日志(应无 WireCheck 告警)

相关