Skip to content
返回部署

使用 Fly.io 部署

全球 VM 应用部署,Docker,多区域扩缩,Postgres/SQLite。

平台进阶

为什么

Fly.io 部署 Docker 容器到 30+ 区域 VM,全球任播网络。支持 Postgres(HA)、SQLite(litestream)和缩到零,适合靠近用户的全栈应用。

何时使用

需要多区域、Docker 和真实 DB 的全栈应用用 Fly.io。Serverless 避免 — 用 Cloudflare/Vercel。

如何做

1. 启动 — fly launch 创建 Dockerfile + fly.toml 2. 部署 — fly deploy,构建并部署到所有区域 3. 扩缩 — fly scale count 3,运行 3 VM 4. 区域 — fly regions add sjc,ams 多区域 5. Postgres — fly postgres create,跨区域 HA 6. SQLite — fly volume create,litestream 复制 7. 密钥 — fly secrets set KEY=VALUE

示例

# fly.toml app = "myapp" primary_region = "iad" [build] [http_service] internal_port = 3000 force_https = true auto_stop_machines = true auto_start_machines = true min_machines_running = 0 # 部署 fly launch # 初始设置 fly deploy # 部署到主区域 fly scale count 3 # 3 VM fly regions add sjc ams # 多区域 # Postgres fly postgres create --name mypg --region iad --initial-cluster-size 3

常见问题

  • ⚠应用不可达 — fly.toml internal_port 不匹配应用监听端口
  • ⚠部署丢 volume 数据 — volume 按区域,部署错区域丢数据
  • ⚠环境间配置漂移 — 使用基础设施即代码(Terraform/Pulumi)保持 dev/staging/prod 一致

最佳实践

  • ✓设 auto_stop_machines + auto_start_machines — 空闲缩到零省钱
  • ✓用 fly postgres 做 HA Postgres — 托管、备份和多区域复制
  • ✓设置健康检查和优雅关闭 — 处理 SIGTERM 以在退出前排空进行中的请求

常见问题解答