全部文章
共 70 篇
-
Cloudflare 免费额度速查:撞上限制时你会看到什么
Workers、KV、Pages 的免费额度一张表,超限后的 Error 1027 与 fail open/closed,以及哪个限制最容易先撞上。
-
Request 与 Response 对象详解:请求里有什么,响应怎么写
把 Request 的 method、URL、headers、cf、body 逐个拆开看,再用真实部署验证 Response 的五种写法:JSON 加状态码、多 Set-Cookie、流式返回、302 跳转、表单解析,以及 body 只能读一次的原始报错。
-
用 Hono 写 Workers 应用:路由、中间件、错误处理一次装好
Hono 4.13 在 Workers 上的完整跑通记录:单文件路由、路径参数、CORS 与日志中间件、Bearer 鉴权分组、HTTPException 与 notFound 兜底,附本地 dev 的真实状态码和 71.61 KiB 打包体积,以及 compatibility_date 超前的原始报错。
-
KV 存储入门:命名空间、读写与最终一致的实测延迟
从建命名空间到 Worker 里读写 KV 的完整流程,附本机实测延迟:写入 473ms、命中缓存读取 6ms、未命中 207ms、删除后 list 仍能看到旧 key 需要 45 秒才消失。
-
R2 与图床:对象存储的上传、取回与公开访问
R2 绑定、按 key 上传取回、etag 与 Cache-Control 的处理,附本机 workerd 模拟环境的完整实测输出;账号无 R2 权限,建桶与公开域名部分只给步骤并明确标注未执行。
-
D1 数据库入门:建表、参数化查询与批量写入
D1 绑定、schema 执行、prepare+bind 参数化查询、batch 批量写与 UNIQUE 冲突的原始报错,附本机 local 模式的实测返回,含每次写入的 meta 字段含义。
-
Durable Objects 入门:一个 ID 一个实例的强一致状态
DO 的单实例语义、类与 migrations 配置、storage 读写与 blockConcurrencyWhile、用 idFromName 拿 stub 的两种调用方式,以及它和 KV、D1 的分工边界。账号无权限,本篇只给配置与代码,未部署也未本地运行。
-
Workers 定时任务:cron 触发器与 scheduled 处理函数
triggers.crons 的配置写法、scheduled 处理函数的三个参数、UTC 与时区换算、ctx.waitUntil 的收尾作用,以及用 wrangler dev --test-scheduled 在本地触发定时任务的调试方式。
-
环境变量与 secrets:把配置和密钥分开管
wrangler.toml 的 [vars] 与 wrangler secret 的分工、本地 .dev.vars 的用法、多环境变量的隔离、以及三个真会踩的坑:值都是字符串、改了要重部署、日志里打出密钥。
-
wrangler dev 与调试:本地跑起来和线上不一样的地方
wrangler dev 的 local 与 remote 两种模式、启动日志怎么读、本地状态文件在哪、三个真遇到的报错原文(compatibility date 超前、日志路径、端口),以及断点与热重载的用法。
-
可观测性与日志:从 metrics 到 wrangler tail 的排查路径
Workers 的四层观测手段、console.log 去了哪里、wrangler tail 的实时过滤、结构化日志的写法,以及一条"先看指标、再看单请求、最后查历史"的排查顺序。
-
Pages 入门:把静态站交给全球网络
从连仓库到拿到 pages.dev 域名:Pages 的构建流程、直接上传的用法、免费额度边界,以及部署完成后该看哪几个页面。
-
Pages Functions:用目录结构写后端
functions 目录的文件路径就是路由:处理器命名、动态段取值、中间件串联、_routes.json 控制调用范围,以及免费额度从哪一刻开始计。
-
Pages 自定义域与预览部署:换域名,也换预览地址
把 pages.dev 换成自有域名,让每次分支推送生成带 hash 的预览地址,用 Access 挡住不该被看到的预览环境,并处理 apex 与 www 的分配。
-
构建配置与缓存:让 Pages 每次构建都可复现
根目录、构建命令、输出目录、监视路径、Node 版本与依赖缓存:六个配置项决定构建能否稳定复现,以及本地成功云端失败时该从哪查。
-
Astro 与 Hugo:静态站框架在 Pages 上的部署参数
Astro 与 Hugo 的构建命令、输出目录、版本锁定方式,静态输出与 SSR 输出的分界,以及主题用 submodule 引入时构建要补的那一步。
-
Pages 与 Workers 静态资源:同一件事的两种做法
assets 目录与 ASSETS 绑定、命中静态文件就不进 Worker 的路由规则、not_found_handling 与 run_worker_first 的取舍,以及新项目该选哪边。
-
图片优化:免费额度内能做的四件事
免费档没有图片处理服务,优化要在构建期完成:尺寸分级、现代格式、宽高占位、加载优先级,外加大图放 R2 的分界。
-
缓存规则:把哪些请求留在边缘
默认只缓存静态扩展名、HTML 不缓存,四条规则覆盖静态资源、页面、接口与后台,配合 cf-cache-status 验证命中,再用清除与 Dev Mode 收拾残局。
-
重定向与批量重定向:几千条旧链接怎么搬
_redirects 文件的语法与 2,000 条静态上限、通配符与占位符写法、换域名时用 Bulk Redirects 批量导入,以及 301 被浏览器记住后怎么收拾。
-
站点性能与 Web Analytics:先看见,再优化
Web Analytics 的免费真实用户数据怎么开、Core Web Vitals 四项指标对应的具体改动、以及按投入产出排出的优化顺序。
-
WAF 入门:免费计划能配出的第一层防护
免费计划里的 WAF 包含什么:免费托管规则集、自定义规则的条数与表达式写法、五种动作的差别,以及用 Security Events 验证规则是否真的生效。
-
速率限制:免费档一条规则怎么用出效果
免费档只有一条速率限制规则、只按路径匹配、周期只有 10 秒。讲清阈值怎么算、动作怎么选,附固定窗口与滑动窗口在同一组请求下的实测差异。
-
Bot 管理:免费档的一个开关与它的副作用
免费计划只有 Bot Fight Mode 一个开关,它按已知机器人名单与浏览器指纹下发挑战,会误伤 API 客户端与监控探针。讲清开之前要排除什么、开了之后怎么确认效果。
-
Zero Trust Access:给内部工具加一层登录,不改代码
免费档 50 个席位,用内置的一次性验证码就能把后台、预览环境、内部工具挡在登录页后面。Access 在边缘拦截,应用本身不需要改代码;需要改的是你对"公开域名"的理解。
-
Turnstile 人机验证:前端一个 div,后端一次 POST
Turnstile 免费、可用于任意站点,不要求域名在 Cloudflare 上。前端嵌一个容器,后端调用 siteverify,token 单次有效 300 秒。附本机用测试密钥真实调用 siteverify 的返回。
-
SSL/TLS 模式:Flexible、Full、Full (strict) 怎么选
四种回源模式的实际差别、Flexible 引发重定向循环的原因、Full (strict) 需要的证书条件,以及 525/526 这类报错对应的具体故障点。
-
安全响应头与 HSTS:用 Worker 一次配全
Cloudflare 只自动加 CF-RAY、NEL 这类头,CSP、HSTS、X-Frame-Options 要自己配。附一个真实部署的 Worker,以及抓回来的完整响应头。
-
DDoS 防护:免费计划里哪些是自动的,哪些要你动手
网络层与应用层的防护在免费档里是两套机制:前者全自动且不计量,后者要靠 WAF 规则、限流与缓存命中率。附被打时的处理顺序与 Under Attack Mode 的副作用。
-
日志与 Logpush:免费档能看到什么,看不到什么
控制台分析、Security Events、wrangler tail 是免费档的三条日志路径,Logpush 外送要付费。附一次真实 tail 抓到的结构化日志,以及 tail 输出里 Ok 与 Exception 的含义。
-
攻击排查顺序:从 Ray ID 到处置的七步
把"站点被打"拆成可判定的七步:先定位请求停在哪一层,再按类型选手段,最后才是改配置。附状态码对照表与一条 curl 判定命令。
-
Cloudflare 托管 DNS 的注意事项
把域名的 NS 交给 Cloudflare 之后,哪些行为会变、哪些记录不能开代理、改 NS 前后要准备什么;附真实域名的 NS、SOA 与 TTL 查询结果。
-
Email Routing 免费收信转发:把自有域名变成邮箱入口
用 Cloudflare Email Routing 把 hello@yourdomain 转到已有邮箱的完整流程、它自动写入的 MX 与 SPF 记录、与现有邮箱共存的限制,以及转发链上 SPF/DMARC 为什么会断。
-
SPF / DKIM / DMARC:三条记录各管什么
SPF 授权发信 IP、DKIM 给邮件签名、DMARC 定策略并收报告;三条记录的写法、Cloudflare DNS 里的填法、10 次查询上限的坑,附 Google 与 Cloudflare 域名的真实记录。
-
DNSSEC 开通与验证:给解析结果加签名
DNSSEC 的信任链怎么串、Cloudflare 一键开通后要去注册商填哪四个参数、怎么用 AD 标志验证,以及 DS 填错导致全站 SERVFAIL 的恢复顺序;附真实 DS 记录与验证结果。
-
子域与泛解析:什么时候该开 `*` 记录
子域的规划方式、泛解析的匹配规则与优先级、它和多租户/证书/Workers 路由的关系,以及什么时候不该开;附 github.io 与 cloudflare.com 的真实泛解析对照查询。
-
CNAME 接入:把第三方服务挂到自己的子域
CNAME 的跟随解析、与其它记录的互斥规则、根域为什么特殊、接 Pages 与 SaaS 时的代理开关顺序,以及开了代理后为什么查不到 CNAME;附真实 CNAME 查询结果。
-
域名转移与续费:状态码、赎回期与几个真实坑
域名到期后的四个阶段与各自代价、RDAP 里三种 prohibited 状态的含义、转移动的完整链路与 60 天锁定期,以及首年低价续费贵的识别方法;附真实域名的 RDAP 到期与状态数据。
-
多域名与重定向:把几个域名收成一个入口
主域与别名的组织方式、301/302/307/308 的选择、Cloudflare 上做重定向的三条路径、重定向链与 HSTS 的坑;附 github.com 的真实跳转响应头。
-
DNS 排错:用 dig 与 DoH 定位到底卡在哪一层
把解析拆成缓存、递归、权威三层逐一验证的方法、DoH JSON 字段的读法、NXDOMAIN 与 NODATA 的区别,以及五个高频现象的判断路径;附真实 DoH 应答。
-
域名合规与国内访问:备案、实名与跨境链路
域名实名、ICP 备案、公安备案各管什么,什么情况下不需要备案,Cloudflare 中国网络的门槛,以及跨境访问的真实体验与一次测量踩坑记录。
-
项目:用 Workers 与 KV 做一个免费短链服务
一个 KV 命名空间加 80 行代码,做出可用的短链服务;附真实部署输出、302 跳转实测,以及 KV 最终一致性和写入额度的真实边界。
-
项目:用 R2 做一个不花流量费的图床
R2 免费 10 GB 存储、100 万次写、1000 万次读,出站流量不计费;这套图床的设计取舍、上传鉴权、缓存头与成本估算,附无法实机验证的部分。
-
项目:用 Pages 搭一个长期免费的个人博客
Pages 每月 500 次构建、2 万个文件、流量不计费;博客的三条部署路线、构建参数怎么填、自定义域与预览部署,以及构建次数的真实边界。
-
冷缓存、热缓存与"假磁盘":同一台机器为什么能测出 10.9 GB/s 和 250 MB/s
同一台机器、同一条 SQL,能测出 10.9 GB/s 和 250 MB/s。差别不在数据库,在数据来自哪一层存储。四层缓存模型、三个自测数字、一份冷热对照脚本。
-
同一份 200 万行 CSV:DuckDB、PostgreSQL、SQLite 本地分析查询实测
2,000,000 行、93.6MB 的 CSV,三个引擎、三条聚合查询。DuckDB 单线程 14.6ms,PostgreSQL 并行 8 是 70ms,SQLite 766ms。附导入耗时、文件体积与选型边界。
-
Windows 上 docker run -p 绑不上端口:三种报错、一次不可复现的失败和一个反直觉结论
同一个端口昨天报 WSAEACCES、今天却能绑成功;人为加 Windows 保留段也无法复现失败,但"端口被占用"一测就中。附四步排查与三种处置。
-
逻辑复制做零停机升级:1M 行同步 1.6 秒,切换停顿 0.86 秒,附五个必踩的坑
PostgreSQL 14.24 到 18.6,逻辑复制全流程实测:初始同步 1.6s、20 秒写入压测下延迟 0 字节、切换停顿 0.86s。附 schema/序列/DDL 三个不同步问题与真实报错。
-
Python 连 PostgreSQL:连接比查询贵 40 倍,10 个线程反而比 1 个连接慢
psycopg3 与 asyncpg 实测:单连接 11184 qps,每次新建连接掉到 360 qps,10 线程比单连接慢 55%,asyncpg 10 连接并发 23601 qps。连接成本 p50 1.8ms。
-
读放大:一条返回 21 行的查询扫了 200 万行,代价是 351 倍
200 万行的表、10 万基数的 user_id。加索引前后:扫描行数 2 亿降到 0,缓冲区块 14720 降到 4,单查询 24.6ms 降到 0.07ms。附三条量化读放大的 SQL 与一个不成立的经验法则。
-
PostgreSQL 时间点恢复演练:pg_basebackup + WAL 归档 + recovery_target_time 的一次完整跑通
在 768 MB 的 postgres:18 容器里跑完一条完整的 PITR 链:0.75 秒、3.2 MB 的基线备份,128 MB 的 WAL 归档,3.22 秒把集群恢复到 DROP TABLE 之前。三次故意失败的恢复留下原始报错,也留下"备份成功不等于能恢复"的三个验收点。
-
Redis 持久化三选一:重启后丢多少、恢复要多久
同一份 20 万键数据,纯 RDB 崩溃丢 10000 条、AOF everysec 与 always 各丢 0 条;写入吞吐差 41 倍,文件体积差 3.69 倍,而重启恢复耗时几乎一样。四种数字全部来自 Docker 容器实测,含 AOF 重写前后的对照。
-
两个"卡住":在 kind 上把 topologySpreadConstraints 和 PodDisruptionBudget 撞到边界
在 Windows + Docker Desktop 上起 1 控制面 2 工作节点的 kind 集群,实测拓扑分布约束导致的 Pending(2/6 就绪、4 个 FailedScheduling)与 PDB 导致的驱逐拒绝(12 次重试、60.7 秒超时),并给出两者叠加时的真实事件原文与恢复耗时。
-
Nginx 反向代理的三个“看起来配了其实没生效”
upstream 里写了 keepalive 却仍有 500 条后端连接,proxy_read_timeout 设为 2s 却等 5s,499/502/504 分别由谁产生。四组 keepalive 配置、两轮 500 请求和原始日志。
-
把 PostgreSQL 塞进 512MB 容器:shared_buffers、连接开销与 work_mem 的内存账本
512MB 的 --memory 配 384MB 的 shared_buffers,实测只撑得住 33 条连接,34 条起随机被 OOM 杀,35 条起每轮必挂。但 docker inspect 给出的是 OOMKilled=true 加退出码 0,容器没有退出,被杀的是 checkpointer 或 backend。文章给出连接数阶梯、每连接 3.2MB 私有内存的测法,以及按 --memory 反推 shared_buffers 上限的公式。
-
PostgreSQL 18 参数速查:默认值、生效方式、改哪一层
17 个常改参数在 18.6 上的默认值与 context,附一条导出当前值的 SQL、三种改法的差别,以及三个容易改错层的坑。
-
pg_dump / pg_restore 常用组合:六条命令与四个坑
六条常用 dump/restore 组合、并行参数的真实报错(-j 只支持目录格式)、以及 owner/权限/序列/已存在对象四个坑。
-
容器里跑 PostgreSQL 的 8 条纪律(每条都踩过)
挂载点、停止方式、内存上限、checksums、时区、端口——8 条来自真实故障的规矩,附两条真实 panic 日志与 OOM 数字。
-
PostgreSQL 常见报错速查:12 条原文、含义与处置
从 role/database 不存在到死锁、too many clients、checksums 不一致,12 条常见报错的含义与第一步该做什么;其中 4 条为本机实测原文。
-
pg_stat_activity 一页纸:看哪几列、三条查询定位阻塞
22 个列里真正要看的是 6 个;state 与 wait_event_type 的取值怎么读;三条查询分别查长事务、阻塞树、idle in transaction 泄漏。
-
慢查询日志:log_min_duration_statement 与 auto_explain 怎么配
从一条真实日志行出发:日志参数怎么设、日志里有什么、auto_explain 怎么把执行计划也记下来,以及三个影响性能的开关。
-
PostgreSQL 索引类型速查:btree / hash / gin / gist / brin 各管什么
六种索引类型支持的运算符与适用场景,四个常见误用(BRIN 不看相关性、hash 想排序、GIN 写放大、index-only 缺 visibility map)。
-
timestamp 与 timestamptz:三个函数、两个时区、一个常见错误
两种时间类型都是 8 字节,差别在存储语义;now()、statement_timestamp()、clock_timestamp() 三个函数的区别有实测输出;附三个时区坑。
-
pgbench 速查:默认值、六组参数、一个容易自欺的规模陷阱
pgbench 的默认值(-c 1、-j 1、-t 10、-s 1)、五类常用参数、输出字段含义,以及 -s 小于 -c 时你在测的其实是锁竞争。
-
PostgreSQL 类型选择速查:字节数、精度与五个常见选错
常用类型的实际存储字节(实测 pg_type.typlen)、金额用 numeric 的代价、text 与 varchar 的真实差别,以及五个建表时最容易选错的类型。
-
PostgreSQL 14 停止支持倒计时:14 → 18 大版本升级的完整实操清单
PG 14 将在 2026-11-12 发布最后一个 minor 并结束支持。四种文件搬迁模式各有什么硬前提、统计信息怎么重建、回滚边界在哪,以及 799MB 与 308MB 两次真实升级的耗时。
-
PostgreSQL 18 异步 I/O 调优手册:io_method、io_workers 与 effective_io_concurrency 的真实默认值
PostgreSQL 18 的异步 I/O 由四个参数加一个编译选项决定。18.6 上的实测:点查负载下三种 io_method 无差别,暖缓存顺序扫描 worker 比 sync 快 1.5 倍,真冷盘则差不到 2%;io_combine_limit 抬到 1MB 反而慢 66%。
-
PgBouncer 容量数学:max_client_conn、文件描述符与 pool_size 的正确算法
官方默认 max_client_conn 只有 100,default_pool_size 只有 20。用官方的文件描述符公式算预算,再实测池模式:500 客户端加 50ms 思考时间下,transaction 9865 tps,session 只有 394 tps。
-
用 eBPF 拆开数据库 p99 长尾:bpftrace 三件套的判读矩阵
pg_stat_activity 显示一切正常、p99 却降不下来,问题通常在内核。三条判定路径对应三组 bpftrace 工具,附真实块 I/O 延迟直方图,以及一个自写探针的失败案例。
-
pg_stat_statements 三步定位慢查询:按总耗时排序,按缓存命中和 WAL 归因
按 mean_exec_time 排序是最常见的优化误区。改成按 total_exec_time 排序,用缓存命中、临时块落盘、WAL 字节三个字段归因,再用 EXPLAIN 验证,最后附两轮真实 Top-N。
没有匹配的文章,换个关键词或标签试试。