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,我們將在 Email 之外,同步於 Telegram 回覆您。
WhatsApp 選填
格式:國碼 + 電話號碼(例如:+886XXXXXXXXX)。

按下此按鈕即表示您同意我們處理您的資料。