Lobsters | 📄 原文链接 | 2026-11-08 收录

用 Bunny 的可脚本 DNS 做就近接入:比 Route 53 便宜,坑也不少

来源:vincent.bernat.ch — 2026-11

📋 概述

Vincent Bernat 把博客的 CDN 与 DNS 从 CloudFront 加 Route 53 迁到 bunny.net。Route 53 的账单很具体:每 zone 每月 0.5 美元、每百万次地理位置查询 0.7 美元、每个健康检查每月 0.75 美元,再加 DNSSEC 签名所需 KMS 密钥的每月 1 美元;而 Bunny DNS 对 500 个域名以内几乎免费,还提供「可脚本 DNS」——每次查询都跑一段用户提供的 JavaScript 来算答案。他用七台 NixOS 虚拟机分布在巴黎、纽伦堡、Ashburn、新加坡、圣何塞、圣保罗与悉尼,脚本按查询来源的地理位置返回最近两台服务器的 A/AAAA,浏览器能在第一台挂掉时回退到第二台。麻烦出在解析器会打乱记录顺序,于是布宜诺斯艾利斯的用户可能被分到 5200 英里外、延迟 140ms 的 Ashburn。他试过 RFC 9460 的 HTTPS 记录靠优先级串起「最近→次近→兜底」,但 Chrome 忽略 target 不是「.」的记录,而且 Bunny 不像 CNAME 那样在附加段附上目标地址,解析器得多跑一轮。最后退回混合策略:两台距离相近就都返回、TTL 一小时;差距超过两倍且超过 1000 英里就只给最近一台、TTL 两分钟。

🔑 核心要点

💡 金句

最烦人的一点是,从布宜诺斯艾利斯来的用户会同时拿到圣保罗(1000 英里、30ms RTT)和 Ashburn(5200 英里、140ms RTT),而大多数解析器会把顺序打乱。
← 返回 Lobsters 首页