部署到 DigitalOcean Droplet
DigitalOcean Linux VPS,完全 root 访问,经 SSH、Docker 或一键应用部署。
平台进阶
为什么
Droplet 是可预测成本的 Linux VM,完全 root 访问 — 无厂商锁定、透明定价、14 全球区域。一键应用(Docker、LAMP、Node)预装栈。
平台即服务采用率 2024 年增长 24%,团队从虚拟机管理转向 git push 部署。the cloud infrastructure market reached $330B in 2024, growing 22% year-over-year (Synergy Research),PaaS 层捕获了大多数新工作负载。
何时使用
自托管应用、自定义栈和熟悉 Linux 管理的团队用 Droplet。托管 PaaS 优先 App Platform。
如何做
1. 创建 — doctl compute droplet create myapp --image docker-20-04 --size s-2vcpu-4gb
2. SSH — ssh root@droplet_ip,安装应用
3. Docker — docker run -d -p 80:3000 myapp
4. Nginx — 反向代理 + Let's Encrypt 做 TLS
5. 防火墙 — doctl compute firewall create,开 80/443/22
6. Floating IP — 生产静态 IP
7. 快照 — 部署前备份
示例
# 创建 Docker Droplet
doctl compute droplet create myapp --image docker-20-04 --size s-2vcpu-4gb --region nyc1 --ssh-keys ssh-key-id
# SSH 并部署
ssh root@droplet_ip
docker run -d --name app -p 3000:3000 myapp:latest
# Nginx + Let's Encrypt
apt install nginx certbot python3-certbot-nginx
certbot --nginx -d myapp.com
# Caddy(更简单 TLS)
# Caddyfile
myapp.com
reverse_proxy localhost:3000
常见问题
- ⚠无防火墙 — 所有端口开放,配置 DO 防火墙或 ufw
- ⚠手动 TLS 设置 — 用 Caddy 替代 Nginx 自动 Let's Encrypt
- ⚠环境间配置漂移 — 使用基础设施即代码(Terraform/Pulumi)保持 dev/staging/prod 一致
最佳实践
- ✓反向代理用 Caddy — 自动 HTTPS Let's Encrypt,零配置 TLS
- ✓部署前快照 — 即时回滚到工作状态
- ✓设置健康检查和优雅关闭 — 处理 SIGTERM 以在退出前排空进行中的请求