GH GambleHub

CDN优化和latency缓解

1)目标及延误图

Latency=DNS+TCP/TLS+TTFB (服务器/orijin/缓存)+内容交付(RTT ×卷)+客户端渲染。
优化=减少RTT数量,减少字节并将计算/缓存传递到更接近用户的位置。

2) CDN体系结构

Anycast POP是通过BGP路由的近端节点。
Tiered caching/Origin Shield是"伞形"中间层,可减少Orijin上的暴风雨。
Geo -/Regional routing-绑定tenant/管辖权(数据主权、许可证)。
Failover-备用橙色/区域,健康样本和快速开关。

3)现金: 钥匙,标题,策略

3.1缓存密钥(缓存密钥)

默认值为"scheme+host+path+?query"。
仅添加所需的参数('?v=','?lang=','?tenant=')。其余的是ignore-params。
"Vary"是最小值:"Accept-Encoding","Accept-Language"(如果确实需要),"授权"通常会破坏缓存。

3.2个政策

公共静态:'Cache-Control:public,max-age=31536000,immutable'+rev(名称中的hash)。
半动力学(目录,规则,FAQ):'s-maxage=300,stale-wile-revalidate=600,stale-if-error=86400'。
API-GET:使用ETag/Last-Modified, "SWR/SIE",启用coalescing(一个热键请求)。
私有:个人响应-通过边缘计算(ESI/kv)或per tenant缓存在周边。

3.3反风暴

要求coalescing-捕捉并发小姐查询。
Serve-stale-在橙色发生故障时放弃过时的对象。
Background revalidation-在背景中更新。

4)HTTP/2-3,TCP/TLS和早期回报

HTTP/2:多路复用,标题压缩;限制主要标题"max concurrent streams"。
HTTP/3 (QUIC):TTFB因移动/高损耗而大幅下降;留意起始阈值和返回。

TLS 1.3: 1-RTT handshake;OCSP stapling;HSTS.

0-RTT:仅适用于等效的"GET",如果考虑了重播风险。
103 Early Hints:用于关键资源的早期"Link: rel=preload"。

Preconnect / DNS-prefetch: ``.

5)边缘计算和"精细个性化"

在边缘:头条新闻普查,地理/特南特固定,A/B标记,易于个性化而无需查询奥里金。
规则:不将PII存储在POP节点上;仅缓存单元/公共数据。

6)优化媒体和格式

图像:自动转换为WebP/AVIF,重新调整边缘,'srcset/sizes'和'lazyload'。

压缩: Brotli for text (HTML/CSS/JS/JSON), gzip fallback.

视频:HLS/DASH,CDN-segment教练,"preload=metadata",海报。
字体:subset+'font display:swap';以长缓存主持。
关键CSS:在线第一屏幕;其余的是async。

7) API模式和缓存

Idempotent GET-通过查询密钥(包括数据版本)缓存。
ETag:强有效载荷哈希+"If-None-Match"。
Surrogate-Control(CDN特征)可与客户的"Cache-Control"区分开。
Signed URL-用于私有静态/媒体。
GraphQL:通过操作/变量规范化键键;使用分区缓存/resolver缓存。
WebSockets:对于real-time-缩减消息、压缩(permessage-deflate),将WS shards放在更靠近用户的位置。

8)配置示例

8.1 NGINX (Orijin:缓存API-GET)

nginx
We give SWR and ETag location/api/v1/catalog/{
proxy_cache api_cache;
proxy_cache_key "$scheme$request_method$host$uri$is_args$args";
proxy_cache_valid 200 5m;
proxy_cache_use_stale updating error timeout http_500 http_502 http_503 http_504;
add_header Cache-Control "public, s-maxage=300, stale-while-revalidate=600, stale-if-error=86400";
add_header ETag $upstream_http_etag;
proxy_ignore_headers Set-Cookie; # do not break the Set-Cookie proxy_hide_header cache;
proxy_pass http://catalog;
}

8.2 Fastly VCL (SWR, coalescing, ignore cookies)

vcl sub vcl_recv {
set req. hash_ignore_busy = true;   # coalescing if (req. url. qs ~ "^(?!.(lang    v)=)") { remove req. url. qs; }
if (req. http. Cookie) { remove req. http. Cookie; }
}

sub vcl_backend_response {
set beresp. ttl = 300s;
set beresp. stale_if_error = 86400s;
set beresp. stale_while_revalidate = 600s;
if (beresp. http. Set-Cookie) { unset beresp. http. Set-Cookie; }
}

8.3 Cloudflare (Transform Rules, Cache Rules, Early Hints — псевдо)

json
{
"cache_rule": {
"if": "http. request. uri. path matches \"/assets/.\"",
"action": {"cache": {"eligibility":"eligible", "ttl": 31536000}}
},
"transform_rule": {
"set_headers": [{"name":"Cache-Control","value":"public, s-maxage=300, stale-while-revalidate=600"}]
},
"early_hints": {"enable": true}
}

9)移动网络和"不稳定"互联网

积极使用HTTP/3;减小关键路径的大小(HTML+critical CSS <14 KB)。
优先H2/H3:优先排序(HTML→CSS→JS→media稍后)。
Retray policy with jitter, idempotency for API。
Size-budgets和bandling:代码分割,deferred JS,删除未使用的CSS/JS。

10)可观察性和SLO

RUM:按地区/ASN/tenant分列的TTFB,LCP,INP,CLS;分布p95/p99。
合成:POP am上的控制路线"/health/cdn"。

缓存度量: 重读和按键;origin fetch rate;coalescing savings.

Alerts:命中率下降,起源的增长,H3叶降解,5xx在盾牌上。

11) iGaming/财务细节

游戏目录/系数: 简短的"最大"+SWR;region-aware ключ (`tenant|region|lang`).

事件高峰(比赛,抽签):高速缓存(战前)加热,重度个性化"冻结",镜子来源。
付费/柜:不缓存私人,但通过H3+edge-TLS和近距离区域加速。
辖区:按区域划分的域/路径;"Vary:X-Region"控制。

12)反模式

'Vary:'连续所有;缓存密钥取决于额外的cookie/标头。
缺少SWR/SIE →短暂的橙色故障中的"黑屏"。
清除缓存"遍历"而不是按标签/键进行点障碍。
没有名称修订和"max-age=0"的资源。
"授权"的全局deny-cache,即使在公共场合也是如此。
缺乏coalescing →奥里金风暴。
POP上过早的"沉重"个性化。

13)准备就绪支票清单

[] Anycast POP + tiered/shield;健康检查和起源失败。
  • 缓存密钥最小;忽略多余的查询/cookie;"Surrogate-Control"。
  • SWR/SIE已启用,coalescing处于活动状态;错误时的serve-stale。
  • HTTP/3包括在内;TLS 1.3;103 Early Hints专为关键资源而定制。
  • 图像:AVIF/WebP,边缘重塑;Brotli用于歌词。
[] API-GET с ETag/Last-Modified;等效性/恢复性;不要缓存私有配置文件。
  • Preconnect到静态域;关键CSS入口。
  • 度量标准:按地区/特南特分列的hit-ratio、origin-egress、TTFB/LCP p 95、H3份额。
  • 事件前缓存预热计划;点障碍(标签)。
  • Vary/keys/TTL文件;事件花花公子(命中率下降)。

14) TL;DR

将徒步旅行减少到最低限度:tiered/shield+正确的cache-keys+SWR/SIE+coalescing。打开HTTP/3/TLS 1。3、使用103 Early Hints和preconnect。在边缘压缩和转换媒体,在关键的CSS上线。对于API,是ETag,整洁的"Vary",相容性和明智的"GET"缓存。测量热值、TTFB/LCP p 95、起源egress和预热快取。

Contact

联系我们

如需任何咨询或支持,请随时联系我们。我们随时准备提供帮助!

开始集成

Email — 必填。Telegram 或 WhatsApp — 可选

您的姓名 可选
Email 可选
主题 可选
消息内容 可选
Telegram 可选
@
如果填写 Telegram,我们也会在 Telegram 回复您。
WhatsApp 可选
格式:+国家代码 + 号码(例如:+86XXXXXXXXX)。

点击按钮即表示您同意数据处理。