GEOFlow托管渠道站点搭建完全指南:子域名分配与发布配额让一套后台管多站
【免费下载链接】GEOFlowOpen-source GEO content engineering and multi-site distribution platform with AI quality inspection, illustrated admin help, hosted sites, browser-assisted publishing, and signed updates.项目地址: https://gitcode.com/gh_mirrors/geof/GEOFlow
GEOFlow 是一款开源的 GEO 内容工程与多站点分发平台,其中的托管渠道站点功能可以靠子域名分配和发布配额,让一套后台同时管理多个网站:大量二级域名通过泛域名 DNS 解析指向同一套应用,文章按发布配额自动分配到不同站点,每个站点又拥有相互隔离的主题、SEO、表单和统计数据。本指南带你从零走完多站发布体系的搭建流程。
什么是GEOFlow托管渠道站点:一套后台管多站
核心思路是:一套 GEOFlow 部署、一套数据库、一个后台,而alpha.sites.example.com、beta.sites.example.com等二级域名全部指向同一个应用。请求进来时,系统根据域名解析出站点上下文,各站点独立呈现首页、文章、关于页、Sitemap 和线索表单。
相比每个站点单独装一套系统,托管渠道站点的优势很明显:
- 🚀内容一次生产、多站分发:任务产出的文章自动分配到不同站点
- 📦数据级隔离:每篇文章在托管站点池中只有一个归属站点,并发请求也不会击穿日发布上限
- 🛡️内置质量门禁:未知域名一律 404,新站默认禁止索引,通过检查后才能开放收录
搭建前的3项准备:泛域名解析、证书与环境配置
- 泛域名 DNS 解析:为托管根域配置泛解析(如
*.sites.example.com),让所有二级域名指向同一台服务器。 - 泛域名 TLS 证书:证书需覆盖整个泛域名。
- 环境变量:分别设置主站域名与托管根域,两者不能重叠,详细配置见官方 阶段一运行手册:
GEOFLOW_HOSTED_SITES_ENABLED=true GEOFLOW_PRIMARY_HOSTS=example.com,www.example.com GEOFLOW_HOSTED_SITE_ROOT_DOMAINS=sites.example.com⚠️ 未知域名不会自动创建站点,只有后台正式创建的站点才能访问,泛解析因此不会变成安全漏洞。
第一步:创建第一个托管渠道站点
进入后台「分发管理 → 托管渠道站点」,点击右上角创建托管站点:
填写站点名称、子域名、主题、时区等参数后提交。新站固定为paused + maintenance + noindex + pending(暂停 + 维护 + 禁索引 + 质量待定),默认不会向公众展示任何内容,这是最安全的灰度起点。子域名、配额等站点档案字段定义在 HostedSiteProfile 模型中,表结构可参考 建表迁移文件。
第二步:子域名分配与站点身份设置
每个站点需要配置:
- 主机名与根域:如
alpha.sites.example.com,系统保证同一子域名唯一 - 主题:从「托管兼容」主题中选择,链接与资源不会跨站串扰
- 站点身份:站点名、简介、关于页,以及公开联系邮箱或有效的线索表单(至少配置一项)
- 发布配额:日上限、权重、最小间隔等参数(下文详解)
注意:新站点不会继承主站的 Logo、版权、备案、轮播和自定义脚本,身份信息需单独配置——避免多个站点出现完全相同的内容与版权信息,这是搜索安全的关键设计。
第三步:预检与激活,安全上线
上线前先执行预检,验证 DNS、TLS、维护状态、noindex 和配置完整性:
php artisan hosted-sites:preflight alpha.sites.example.com --dry-run php artisan hosted-sites:preflight alpha.sites.example.com预检通过后,在后台点击「激活」。系统会自动执行在线探针,检查首页、canonical、JSON-LD、robots、Sitemap、白名单表单和主题资源,通过后切换为active;检查失败会自动回退到维护状态,不会让带病站点暴露在公网。生命周期逻辑见 HostedSiteLifecycleService。
发布配额详解:日上限、权重与最小间隔
发布配额是「一套后台管多站不打架」的核心开关。每个站点有 4 个关键参数:
| 参数 | 含义 | 默认值 |
|---|---|---|
daily_publish_limit | 日发布上限,防止单站被文章灌满 | 3 篇 |
publish_weight | 分配权重,越高分到越多文章 | 100 |
min_publish_interval_minutes | 两篇文章的最小发布间隔 | 360 分钟 |
min_articles_before_index | 开放索引前需要达到的文章数 | 10 篇 |
分配服务 在同一数据库事务内锁定候选站点、复核容量后再创建归属记录,也就是说:并发任务不会击穿日上限,同一篇文章也不会进入两个站点。
绑定 distribution_only 任务:文章自动进入站点池
- 在「任务管理」新建内容任务,发布范围选择
distribution_only(只外部分发、不在主站本地发布)。 - 在任务的「内容分发」区域绑定托管渠道。
- 任务生成的文章通过审核与质检后,系统自动挑出有容量的站点完成分配。
如果当时所有站点都没有容量,分配请求会进入可重试的待分配队列,调度器每 5 分钟执行一次hosted-sites:reconcile自动补偿恢复。
索引门禁:为什么新站要先保持 noindex
新站默认noindex(返回X-Robots-Tag: noindex,robots.txt 禁止抓取)。只有同时满足以下条件,超级管理员才能开放索引:
- ✅ 文章数达到
min_articles_before_index门槛 - ✅ 在线预检保持新鲜,观察窗口(默认 30 分钟)完成且窗口内无 5xx 错误
- ✅ 管理员勾选内容、版权与合规确认
开放索引后,sitemap.xml只包含当前站点可见的文章,发布、更新与下架都会立即反映到 Sitemap 中。
常用运维命令速查
| 命令 | 用途 |
|---|---|
php artisan hosted-sites:preflight <域名> | 预检单个站点,加--all检查全部 |
php artisan hosted-sites:reconcile --limit=500 | 对账分配请求与队列记录 |
php artisan hosted-sites:invalidate-cache <域名> | 清理站点解析与设置缓存 |
常见问题(FAQ)
问:为什么访问一个没建过的子域名会返回 404?这是刻意设计:未知 Host 一律默认拒绝,保证后台、API 和实时服务不会通过托管域名暴露。
问:高并发下发布配额会不会被击穿?不会。分配采用数据库行锁并在同一事务内完成,升级方案 把「日限额突破为 0」列为验收目标,并有独立的 PostgreSQL 并发测试套件验证。
问:站点内容出问题时能回退吗?可以。随时暂停渠道、切换维护或改回 noindex;归档站点返回 410,硬删除只允许在归档之后执行,且回滚会完整保留业务数据。
写在最后
GEOFlow 托管渠道站点把子域名分配、文章归属、发布配额和索引门禁都收进了同一个后台,让「一套后台管多站」从想法变成可灰度、可回退的生产能力。建议从一个灰度站点起步,按「创建 → 预检 → 激活 → 分发 → 开放索引」的节奏推进,再逐步扩展到更多站点。
【免费下载链接】GEOFlowOpen-source GEO content engineering and multi-site distribution platform with AI quality inspection, illustrated admin help, hosted sites, browser-assisted publishing, and signed updates.项目地址: https://gitcode.com/gh_mirrors/geof/GEOFlow
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考