跳到主要内容

附录

本章汇总环境变量、Redis 键模式、API 端点与常用命令等速查表,便于入职与日常运维快速参考。

环境变量

变量描述默认值 / 示例
ALLOW_ORIGINSCORS 允许的来源(逗号分隔)。为空(禁用 CORS)。
ENABLE_TEST_ENDPOINTS暴露 /__test__ 辅助端点。false(docker-compose 中启用)。
MASTER_API_TOKEN具备特权的 Bearer 令牌。dev-master-token(docker-compose)。
SESSION_COOKIE_NAME会话 Cookie 名称。cirrus_session
SESSION_TTL_SECONDS会话有效期(秒)。604800(7 天)。
COOKIE_SECURE是否为 Cookie 设置 Securefalse
COOKIE_DOMAINCookie 作用域域名。为空(仅当前主机)。
COOKIE_SAMESITESameSite 策略(laxnonestrict)。lax
ENABLE_PASSWORD_AUTH是否启用密码登录端点。true
REDIS_HOST / REDIS_PORT / REDIS_PASSWORD各组件共用的 Redis 参数。redis / 6379 / 空。
ACMEDNS_BASE_URLacme-dns 服务基础 URL。http://acmedns
ACME_DIRECTORYACME 目录地址(例如 Caddy 内部 CA)。https://caddy:4431/acme/local/directory
ACME_RENEW_CRON续期扫描的 Cron 表达式。0 * * * *
ACME_RENEW_BEFORE_DAYS距离到期多少天开始续期。30
ACME_RENEW_MAX_PER_SCAN每次扫描排队的域名上限。10
ACME_LOCK_TTL签发任务锁的 TTL。900
ACME_CERT_KEY_TYPESewer 使用的密钥类型。rsa2048
ENFORCE_ACME_CNAME_CHECK签发前是否要求 _acme-challenge CNAME 就绪。true(非本地 CA)/ false
WAIT_FOR_CNAME签发前是否轮询 CNAME。true
CNAME_WAIT_SECS等待 CNAME 的秒数。10
CNAME_BASE_DOMAIN访问 FQDN 的根域。cdn.local.test
CNAME_REPLICAS_PER_SITE每个域名分配的节点数。2
CNAME_DEFAULT_TTL生成的 DNS 记录 TTL。60
DNS_MASTER_BIND_ADDR / DNS_MASTER_PORT隐藏主监听地址/端口。0.0.0.0 / 10053
DNS_SOA_MNAME / DNS_SOA_RNAME / DNS_SOA_REFRESH / DNS_SOA_RETRY / DNS_SOA_EXPIRE / DNS_SOA_MINIMUMSOA 参数。依据基础域推导。
DNS_NS1_A / DNS_NS1_AAAA权威 DNS glue 记录。127.0.0.1 / 空。
CNAME_DNS_SLAVES逗号分隔的从节点端点(host:port)。172.28.0.12:10054
NODE_HEALTH_PORT / NODE_HEALTH_INTERVAL_SECS / NODE_HEALTH_TIMEOUT_SECS / NODE_HEALTH_FAILS_TO_DOWN / NODE_HEALTH_SUCCS_TO_UP健康检查配置。9145 / 5 / 1 / 3 / 1
CDN_PURGE_CHANNEL清缓存消息的 Redis 通道。cdn:purge
FRONTEND_STATIC_DIR前端静态资源目录。/app/static
INTERNAL_PURGE_BASE_URL清缓存订阅器使用的基址。http://127.0.0.1:8080
NGX_METRICS_ALLOW(构建参数)指标端点允许访问的 CIDR。172.28.0.0/16(开发环境)。

Redis 键参考

类型描述
cdn:domains集合所有管理的域名。
cdn:dom:{domain}字符串(JSON)域名配置(DomainConf)。
cdn:nodes集合已注册的节点 ID。
cdn:node:{id}哈希节点元数据(IP、active、健康计数)。
cdn:cert:{domain}哈希TLS 完整链、私钥、签发时间。
cdn:acme:{domain}哈希ACME 注册状态(用户名、密码、fulldomain、状态)。
cdn:acme:lock:{domain}字符串域名签发锁(值为任务令牌)。
cdn:acme:task:{domain}字符串当前排队/运行的任务 ID。
cdn:acmeacct:global哈希全局 ACME 账号密钥材料。
cdn:acmecertkey:{domain}字符串域名证书私钥 PEM。
cdn:acme:renew:scan_lock字符串续期扫描锁。
cdn:user:{username}哈希用户元数据(密码哈希、邮箱、状态、上次登录)。
cdn:users集合用户名集合。
cdn:tokens集合服务令牌 ID。
cdn:token:{id}哈希令牌元数据(标签、创建时间、哈希、后缀)。
cdn:token_hash:{hash}字符串基于哈希反查令牌 ID。
cdn:cname:dirty发布/订阅通道DNS 重建通知。
cdn:purge发布/订阅通道缓存清除通知。

核心 API 端点(摘要)

方法与路径描述
POST /api/v1/auth/login用户认证(密码)。
POST /api/v1/auth/logout结束会话。
GET /api/v1/auth/me查看当前用户上下文。
POST /api/v1/auth/change-password修改自身密码。
GET /api/v1/domains列出域名。
POST /api/v1/domains/{domain}创建域名配置。
GET /api/v1/domains/{domain}获取配置。
PUT /api/v1/domains/{domain}更新配置。
DELETE /api/v1/domains/{domain}删除域名。
GET /api/v1/domains/{domain}/cname返回分配的边缘节点与 TTL。
PUT /api/v1/domains/{domain}/upstreams更新源站列表。
PUT /api/v1/domains/{domain}/cache-rules更新缓存设置。
PUT /api/v1/domains/{domain}/upstream-headers更新转发头。
PUT /api/v1/domains/{domain}/cert上传手动证书。
GET /api/v1/domains/{domain}/acme查看 ACME 状态。
POST /api/v1/domains/{domain}/acme入队 ACME 签发。
DELETE /api/v1/domains/{domain}/acme清理 ACME 状态。
PUT /api/v1/nodes更新节点清单。
POST /api/v1/purge入队清缓存事件。
GET /api/v1/users列出用户。
POST /api/v1/users创建用户。
PUT /api/v1/users/{username}更新用户。
DELETE /api/v1/users/{username}删除用户。
GET /api/v1/auth/tokens列出服务令牌(需 master 令牌)。
POST /api/v1/auth/tokens创建服务令牌。
DELETE /api/v1/auth/tokens/{id}删除服务令牌。

命令速查

命令作用
just up构建并启动完整栈(Docker compose)。
just down停止栈并移除资源(含卷)。
just down-no-volumes停止栈但保留卷。
just pytest运行后端测试套件。
just quicktest运行加速测试子集。
just fresh-test重建容器并运行完整测试。
just fmt自动格式化 Python 源码。
just deploy执行 Ansible 部署(需设置 INVENTORY/PLAYBOOK)。

文档维护

保持本白皮书与代码库同步:

  • 模块迁移或 API 变更时更新相应章节。
  • 新增环境变量与 Redis 键要在此记录。
  • 如发生重大架构变化(例如迁移至 Kubernetes),应新增小节或附录说明。

Cirrus CDN 以可扩展性与运维清晰度为核心设计。通过共享的架构、安全、自动化与运维认知,团队能在满足性能与合规目标的同时,自信地演进平台。