跳转至

Nginx Proxy Manager 迁移到 Caddy 指南

📋 概述

本次迁移将 5 个域名的反向代理从 NPM 切换到 Caddy:

域名 后端服务
npm.ccchao.top 172.93.221.71:81 (NPM 管理界面)
openclaw.ccchao.top 172.93.221.71:18789 (OpenClaw)
bookstack.ccchao.top 172.93.221.71:8888 (BookStack)
drive.ccchao.top 172.93.221.71:47179 (Drive)
note.ccchao.top 127.0.0.1:3000 (HedgeDoc)

🚀 迁移步骤

步骤 1:确认配置文件已就绪

配置文件已生成在工作空间: - Caddyfile - Caddy 配置文件 - docker-compose.caddy.yml - Docker Compose 配置

步骤 2:启动 Caddy

cd /root/.openclaw/workspace
docker compose -f docker-compose.caddy.yml up -d

步骤 3:验证 Caddy 运行状态

# 查看容器状态
docker ps | grep caddy

# 查看 Caddy 日志(确认 SSL 证书申请情况)
docker logs caddy

# 测试域名解析(任选一个)
curl -I https://openclaw.ccchao.top

步骤 4:停止 NPM 容器

docker stop npm-app-1

步骤 5:验证所有域名

逐一访问以下域名,确认服务正常: - https://npm.ccchao.top - https://openclaw.ccchao.top - https://bookstack.ccchao.top - https://drive.ccchao.top - https://note.ccchao.top

步骤 6:(可选)删除 NPM 容器

确认一切正常后,可以删除 NPM 容器:

docker rm npm-app-1

📝 配置说明

Caddyfile 特点

  1. 自动 HTTPS - Caddy 会自动申请和管理 SSL 证书
  2. 邮箱配置 - 使用 admin@ccchao.top 注册证书
  3. Host 网络模式 - 直接访问本地服务,无需端口映射

优势对比

特性 NPM Caddy
配置复杂度 GUI + 手动 纯文本配置
SSL 证书 需手动配置 自动申请 + 续期
资源占用 较高 较低
配置管理 数据库存储 文件版本控制

🔧 常用命令

# 查看 Caddy 日志
docker logs -f caddy

# 重启 Caddy
docker restart caddy

# 停止 Caddy
docker compose -f docker-compose.caddy.yml stop

# 重新加载配置(修改 Caddyfile 后)
docker exec caddy caddy reload --config /etc/caddy/Caddyfile

⚠️ 注意事项

  1. 确保 80/443 端口空闲 - 停止 NPM 后再启动 Caddy,避免端口冲突
  2. DNS 解析正确 - 所有域名需正确指向服务器 IP (172.93.221.71)
  3. 防火墙规则 - 确保 80 和 443 端口开放
  4. 首次启动 - Caddy 需要访问 80 端口进行 HTTP 挑战申请证书

🆘 故障排查

证书申请失败

# 查看详细日志
docker logs caddy --tail 100

# 检查端口占用
netstat -tlnp | grep :80

后端服务无法访问

# 测试本地连接
curl -I http://127.0.0.1:3000
curl -I http://172.93.221.71:8888

回滚到 NPM

# 停止 Caddy
docker compose -f docker-compose.caddy.yml down

# 启动 NPM
docker start npm-app-1