Skip to content

自定义域名配置指南

本文档说明如何为 AI OSS Rank Worker 配置自定义域名 ai-oss-rank-worker.jimmysong.io

前提条件

  • Worker 已成功部署到 Cloudflare
  • jimmysong.io 域名已托管在 Cloudflare
  • 有 Cloudflare 账户的管理权限

配置步骤

方法一:通过 Cloudflare Dashboard(推荐)

  1. 访问 Worker 设置
  2. 登录 Cloudflare Dashboard
  3. 导航到 Workers & Pages
  4. 选择 ai-oss-rank-worker

  5. 添加自定义域名

  6. 点击 Settings 标签
  7. 找到 Domains & Routes 部分
  8. Custom Domains 区域点击 Add Custom Domain
  9. 输入域名:ai-oss-rank-worker.jimmysong.io
  10. 点击 Add Domain

  11. 等待配置生效

  12. Cloudflare 会自动创建 DNS CNAME 记录指向 Worker
  13. SSL 证书会自动配置(使用 Cloudflare Universal SSL)
  14. 通常在 1-2 分钟内生效

  15. 验证配置

# 测试健康检查端点
curl https://ai-oss-rank-worker.jimmysong.io/healthz

# 应返回:ok

方法二:通过 Cloudflare API

如果需要通过 API 自动化配置:

# 1. 获取 Zone ID
ZONE_ID=$(wrangler zones list | grep jimmysong.io | awk '{print $1}')

# 2. 获取 Worker Script ID
ACCOUNT_ID="e2893ba0bf43b4c8830d7a76c47fb4cb"
WORKER_NAME="ai-oss-rank-worker"

# 3. 使用 Cloudflare API 添加自定义域名
# 注意: 需要 Cloudflare API Token
curl -X PUT "https://api.cloudflare.com/client/v4/accounts/${ACCOUNT_ID}/workers/services/${WORKER_NAME}/environments/production/domains" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  --data '{
    "hostname": "ai-oss-rank-worker.jimmysong.io"
  }'

DNS 记录

配置完成后,Cloudflare 会自动创建以下 DNS 记录:

类型:CNAME
名称:ai-oss-rank-worker
目标:ai-oss-rank-worker.jimmysong.workers.dev
代理状态:已代理(橙色云)

验证步骤

配置完成后,验证以下端点:

# 1. 健康检查
curl https://ai-oss-rank-worker.jimmysong.io/healthz

# 2. API 测试 - 获取单个项目
curl "https://ai-oss-rank-worker.jimmysong.io/api/health/microsoft/autogen?locale=zh"

# 3. API 测试 - 批量查询
curl "https://ai-oss-rank-worker.jimmysong.io/api/health?repos=microsoft/autogen,langchain-ai/langchain&locale=zh"

故障排除

域名无法访问

  1. 检查 DNS 记录
dig ai-oss-rank-worker.jimmysong.io

应该返回 CNAME 记录指向 workers.dev 域名

  1. 检查 Worker 状态
wrangler deployments list

确认最新部署成功

  1. 检查 SSL 证书
curl -vI https://ai-oss-rank-worker.jimmysong.io/healthz

确认 SSL 握手成功

CORS 错误

Worker 已配置 CORS 头部,允许所有来源访问:

const corsHeaders = {
  "Access-Control-Allow-Origin": "*",
  "Access-Control-Allow-Methods": "GET, OPTIONS",
  "Access-Control-Allow-Headers": "Content-Type",
};

如果仍有 CORS 问题,检查:

  1. 浏览器开发者工具的 Network 标签
  2. 确认 OPTIONS 预检请求返回 200
  3. 确认响应包含正确的 CORS 头部

前端配置

配置完自定义域名后,前端 JavaScript 已更新为使用自定义域名:

// assets/js/ai-health-indicators.js
const WORKER_URL = 'https://ai-oss-rank-worker.jimmysong.io';

注意事项

  1. DNS 传播时间: 虽然 Cloudflare DNS 更新很快,但全球传播可能需要几分钟
  2. SSL 证书: Cloudflare 自动管理 SSL 证书,无需手动配置
  3. 回退: 如果自定义域名有问题,Worker 仍可通过 *.workers.dev 域名访问
  4. 监控: 建议设置 Cloudflare 的健康检查和告警

相关文档