生产部署
构建
bash
make build产出:
bin/server— Go 二进制文件web/dist/— 前端静态资源
部署检查清单
- [ ] 修改
config.yaml中的jwt.secret为安全随机值 - [ ] 设置
server.mode为release - [ ] 使用 MySQL 或 PostgreSQL 替代 SQLite
- [ ] 配置反向代理(Nginx/Caddy)启用 HTTPS
- [ ] 敏感配置使用环境变量
生产配置示例
yaml
app:
name: My App
server:
host: 0.0.0.0
port: 8080
mode: release # ← 重要
database:
driver: postgres
dsn: host=db.example.com user=app password=${DB_PASS} dbname=myapp port=5432 sslmode=require
redis:
enabled: true
addr: redis.example.com:6379
password: ${REDIS_PASS}
jwt:
secret: ${JWT_SECRET} # ← 使用环境变量
expire: 24DSN 中的环境变量会在运行时通过 os.ExpandEnv 展开。
反向代理(Nginx)
nginx
server {
listen 443 ssl;
server_name app.example.com;
ssl_certificate /etc/ssl/app.crt;
ssl_certificate_key /etc/ssl/app.key;
location /api/ {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
location / {
root /path/to/web/dist;
try_files $uri $uri/ /index.html;
}
}