我们为PolitiCap在bangkok.thailand.politicap.eu设置了一个区域ECN边缘节点:一个小型Go二进制文件,提供过滤后的HTML线,位于公共负载均衡器后,用于TLS终止,并保留顶层站点的身份。这就是该基础设施如何适应3DN的托管模式的原因,以及分割的原因。

它解决了什么问题
PolitiCap面向人类的产品位于politicap.eu:注册、账户、钱包(DutchBud dibs作为虚拟信用)、和交易。然而,区域市场需要更轻量级的部署方式,运营商可以将其作为下行链路运行,而无需克隆WordPress多站点或完整的API栈。
曼谷节点是生产模式中的这种模式:
- 公共主机名在
{city}.{country}.politicap.eu约定中 - 边缘负载均衡器上的TLS(证书到位时)
- 一个单一的ECN节点二进制文件用于HTML线和市场API表面
- 服务器强制的内容策略在Hub出口上实施,而不是浏览器端的过滤器
- Redis作为正常缓存层,用于Feed和文章负载
架构概述
访问者解析区域名称并点击公共前端。负载均衡器终止SSL并根据Host标头路由到ECN进程,而不是服务于主要PolitiCap WordPress站点的通用Web层。节点从Hub内容API中提取一个清理后的Feed,缓存它,并渲染简单的列表和文章页面。
账户操作故意离开边缘:
- 注册/登录/我的账户深链接到顶层
- OIDC和Authentik保持中央
- 线保持主要读和策略绑定
这种分离是多区域产品设计的数字主权的关键:你可以托管区域表面,而无需分散身份和账本状态。

服务器强制内容策略
桌面文章起源于中心 CMS。在任何内容到达区域节点之前,中心导出应用会应用与节点(主机名/租户)相关的策略:
- 禁止在给定的线路上显示的桌面(例如讽刺或暴露式桌面)
- 当某个区域需要一个严格的允许列表时,只允许房屋桌面
- 可选语言允许列表
边缘可能会进一步缩小。它绝不能扩大。这条规则使得设计适合那些关心言论限制的合作伙伴:未过滤的火hose 根本不会出现在节点上。
导出是普通的 JSON(feed + 每篇文章的 HTML)。节点二进制将其转换为公共 HTML 线路,路径为 / 和 /a/{id},带有 Redis TTL,这样短暂的中心闪现不会使页面空白。
二进制如何适应 ECN 包
运行中心市场 API 的同一 Go 二进制文件作为区域包进行分发。配置开启:
- 上行链路 — 中心基本 URL 和节点 API 密钥
- Redis — 共享机队缓存服务,边缘专用逻辑数据库
- 边缘 HTML — 标题、租户标签、默认语言、注册和登录的顶点 URL
操作员与中心握手,在需要时从目录中拉取代码,并获取线路上内容的端点。关于如何建立节点的文档位于 PolitiCap 的技术指南下 种植您的 ECN。
负载均衡器作为 Web 代理
从公共互联网,区域名称指向与其他 3DN 系列站点相同的边缘地址。负载均衡器是 Web 代理:
- 匹配
Host: bangkok.thailand.politicap.eu - 将普通 HTTP 转发到其监听端口上进行 ECN 进程健康检查
- 设置转发 proto/host 头部,以便应用程序看到公共名称
这使得证书管理和面对 DDoS 的监听器保持在共享边缘,而区域二进制文件仍然是一个可以与客户或区域机架一起放置的小型计算单元。
多标签名称(city.country.domain)的 TLS 故意与顶点的单级通配符分开——一旦 DNS 次级和发行路径对齐,就可以为这个主机名推出证书。路由不会等待这一点。
我们验证了什么
- 中心握手标志曼谷下行链路在线
- 内容策略返回租户预期的允许/拒绝集
- 清理后的 feed 只包含允许的桌面
- HTML 主页和文章页面在第一次拉取后从缓存中渲染
- 负载均衡器后端对节点进行健康检查,并提供基于 Host 的路由
为什么这对3DN很重要
3DN的托管托管故事不仅仅是“运行WordPress”。它还为3DN系列的多区域产品(包括PolitiCap市场、身份和政策边界)提供生产模式。区域ECN边缘是可重用的工程:一个二进制文件,一个策略平面,一个缓存习惯,账户顶点。
如果您运行的基础设施必须保持主权,同时仍然链接到一个中心产品,这就是我们将继续扩展的形状:更多城市,相同包,相同规则。
发表回复