GH GambleHub

기술 및 인프라 → CDN 및 컨텐츠 캐싱

CDN과 컨텐츠 캐싱

1) CDN과 캐시 이유

CNC (Content Delivery Network) 은 RTT 및 TTFB를 줄이고 원점을 오프로드하며 P95/P99 테일을 안정화시킵니다. iGaming/fintech의 경우 다음과 같습니다

카탈로그, 자산, 프로모션, 미디어를위한 빠른 첫 바이트.
원산지 용량의 폭발적인 성장없이 최고 안정성 (토너먼트/이벤트).
저축 및 예측 가능한 비용.
지리 제어 (규제, 컨텐츠 라이센스).


2) 기본 캐싱 전략

2. 캐시 할 수있는 1 가지 답변

정적: JS/CSS/글꼴/아이콘-이름에서 긴 TTL (30-365 일) + 파일 해시.
반 정적: 게임 카탈로그, 배너, 구성-몇 분에서 몇 시간까지 TTL + '부실한 동안 수정'.
API GET/HEAD: 디렉토리, 가격 책정, 리드 보드-올바른 키로 짧은 TTL (5-120 초).

2. 타이틀 2 개

'캐시 제어: 공개, 최대 연령 = 600, 부실한 동안 재발행 = 300, 부실한 경우 오류 = 600'

재정의를위한 'ETag '/' Last-Modified'.
'Surrogate-Control '/' CDN- Cache-Control' (공급자가 지원하는 경우).
개인 데이터의 경우: '캐시 제어: 매장 없음' ('캐시 없음' 이 아님).

2. 캐시 키 3 개

기본: 응답에 영향을 미치는 메소드 + IM 경로 + 쿼리 매개 변수.
추가: 컨텐츠가 영향을받는 경우 'Accept-Encoding' (ggip/ml), 'Accept' (json/webp/avif), 로케일 ('Accept-Language'), 지역/통화.
키에서 우발적 인 헤더 (쿠키, 추적 ID) 를 피하십시오.


3) 바리 관리 및 쿠키

'Vary: 수락 인코딩, 수락, 수락 언어' 는 필요한 최소 세트입니다.
캐시 된 경로에 대한 CNC 쿠키 스트리핑: 화이트리스트를 제외한 모든 것을 제거하십시 AB 플래그).
세션 식별자를 캐시 된 컨텐츠 외부의 하위 도메인/경로로 전송합니다.


4) TTL 및 신선도 패턴

불변의 정적: '캐시 제어: 공개, 최대 연령 = 31536000, 불변의' + 파일 이름.
SWRO/SIE: '부실한 상태' 및 '부실한 경우 오류' -원산지 문제의 UX 저항.

파티션 TTL: 게임의 루트 목록-30-60 초; 게임 카드-5-10 분; 배너-30 분

API 믹스: 기본 참고 문헌-5-30 분; 통화/제한 - 1-5 분; 리드 보드> 2-15 초


5) 계층화 된 캐싱 온라인 원점 방패

계층/지역 캐시: 가장자리를 통과하는 요청은 원산지 대신 지역 "방패" 에서 이루어집니다.
장점: 원산지 MISS가 적고 "폭풍" 을 부드럽게하고 더 저렴한 출구입니다.
교통 밀도가 가장 높은 지오 (EU, TR, BR, LATAM) 로 보드를 그룹화하십시오.


6) 장애 및 예열

경로/접두사/태그 별 퍼지: 태그는 배치 청소에 편리합니다 (카탈로그 릴리스, 프로모션 캠페인).
소프트 퍼지 (그레이스): 더 이상 사용되지 않는 내용을 표시하지만 새 내용이 도착하기 전에 포기하십시오.
예열 (예열): 토너먼트 출시/토너먼트 전 시나리오: 인기있는 경로 폴링, 스프라이트 생성 및 사진 변형.
카나리아 장애: 부분적으로 깨끗하고 지표/오류를 확인한 다음 확장하십시오.


7) 에지 규칙 및 기능 (작업자/기능)

응답 오버 라이팅: 캐시 헤더 추가, 'Vary' 정규화, 쿠키 제거.
Geo/ASN 라우팅: 국가 별 리디렉션, 로케일/통화.
보호 된 미디어/객체에 대해 서명 된 GPS/헤더.
Edge-AB 테스트: 가벼우 며 원산지 부하가 증가하지 않습니다 (정적/반 정적 만 해당).
가장자리 계산: 가벼운 위젯/개인화 렌더링이지만 핫 결제 경로는 아닙니다.


8) 이미지 및 비디오

8. 1 사진

자동 변환: 클라이언트를 '수락' 할 때 WebP/AVIF; 'Vary: 수락'.
가장자리 크기 조정: 매개 변수 'w/h/fit/quality'; 사전 설정 (카드, 배너, 미리보기) 을 준비하십시오.
스프라이트 및 SVG 최적화, 전면의 게으른 부하.

8. 2 비디오/스트림

짧은 세그먼트 (2-4 초) 의 재생 목록이 겹치는 HLS/DASH

가장 가까운 세그먼트 및 '오류 발생' 을 미리로드하십시오.
라이브 베팅의 경우-TTFB 컷을 위해 세그먼트를 지역 쉴드에 보관하십시오.


9) CDN을 통한 API

캐시블 GET: '캐시 컨트롤' 과 올바른 키 (로케일/통화/지역) 를 추가하십시오.
조건부 GET: 'ETag '/' If-None-Match' 는 바이트와 TTFB를 줄입니다.
POST/PUT: 캐시되지 않음; 명시 적 규칙과 demempotent 의미론 (드물게 정당화 됨) 하에서 만 POST 응답을 캐시 할 수 있습니다.
가장자리의 속도 제한/WAF: 봇/이상을 차단하여 꼬리를 줄입니다.


10) 보안, 액세스 및 규정 준수

WAF/봇 관리: 서명, 행동 휴리스틱, 보너스 스캐너 방지.
미디어 및 비공개 다운로드를 위해 서명 된 GPS/헤더.
mix () 를 참조하십시오.
GDPR/PII/PCI: 민감한 데이터를 캐시하지 마십시오. 개인 응답이있는 API- '매장 없음'.
시장 규제 요구 사항에 따라 지오 필터/인터록이 가장자리에 있습니다.


11) 네트워크 및 프로토콜

사용하기 위해서는 CDN에 대한 해/2/3 활성화와 재개 및 OCSP 스테이플링이 필요합니다.
텍스트 형식에 대한 Brotli (복사본), gzip - 폴백.
§/QUIC 튜닝 (공급자) → 손실, 특히 모바일 네트워크에 미치는 영향이 적습니다.


12) CDN에 대한 관찰 가능성 및 SLO

메트릭 (가장자리와 방패):
  • 적중 비율 (전체 및 접두사), Origin Offload.
  • 지역/ASN 별 TTFB P50/P95/P99.
  • 상태 코드 별 처리량/오류 (에지/원점).
  • 퍼지 대기 시간.
  • 그림 변환 대기 시간 (Edge Resizing을 사용하는 경우)
SLO 예:
  • 게임 카탈로그: TTFB P95
  • 미디어 (이미지): 90% 이상의 비율로 변환 오류 <0. 1%.
  • API "디렉토리" 를 얻으십시오: TTFB P95 λ200 ms, 활성화는 60% 를 기록합니다.

13) FinOps: 캐시 값

오프로드 = 원산지 → 직접 $ 혜택이있는 출구보다 적습니다.
계층 형 + 쉴드 컷 "폭풍" 및 MISS 하중.
이미지 최적화 (AVIF/WebP/크기 조정) 는 트래픽을 크게 절약합니다.
P95 응답 가중치 및 "고가의 MISS" (바이트 × × × 영역) 를 제어합니다.


14) 구성 및 규칙 (조각)

14. 1 오리진 타이틀 (Nginx)

nginx статика с версионированием location ~ \.(css    js    woff2)$ {
add_header Cache-Control "public, max-age=31536000, immutable";
}

полустатика каталога location /catalog/ {
add_header Cache-Control "public, max-age=300, stale-while-revalidate=600, stale-if-error=600";
add_header Vary "Accept, Accept-Language";
}

14. 2 가장자리의 주요 표준화 (의사)

js addRule((req) => {
// очищаем шум req.cookies.clearExcept(['ab', 'locale']);
// ключ = method+path+критичные query key = `${req.method}:${req.path}?lang=${q.lang}&currency=${q.cur}`;
req.setCacheKey(key);
req.setVary(['Accept', 'Accept-Encoding', 'Accept-Language']);
});

14. 3 서명 된 맵 (아이디어)


/media/{path}?exp=1735707600&sig=HMAC_SHA256(secret, path    exp    ip)
На edge: проверка exp и подписи, опционально привязка к IP/ASN.

15) 릴리스 및 작동 프로세스

릴리스 후크: 배포 후 태그/접두사에 의한 자동 퍼지.
예열 목록: 교통/변환의 최고 경로-미리 예열하십시오.
카탈로그 TTL- 매트릭스: 제품/마케팅에 동의했습니다.
사건: MISS/TTFB가 성장함에 따라 오류가 발생하면 원점이 안정 될 때까지 가장자리에서 값 비싼 변형을 "촬영" 하십시오.


16) 구현 점검표

1. 콘텐츠 맵 (정적/반 정적/API) 및 TTL 행렬.
2. '캐시 제어', 'ETag/Last-Modified', 'Vary' 를 수정합니다.
3. "노이즈", 쿠키 제거, 화이트리스트가없는 캐시 키.
4. 지역별 계층 형 캐싱 + 원산지 보호막.
5. 태그/접두사, 소프트 퍼지, 사전 따뜻한 절차에 의한 퍼지.
6. 가장자리 함수: 정규화, 지질 학적, 서명 된 탭.
7. 이미지 최적화 (WebP/AVIF/크기 조정), 비디오 용 HLS 세그먼트.
8. WAF/봇 필터, 지리 제약 조건, mTLS에서 원산지.
9. SLO 보드: TTFB, Hit Ratio, 오프로드, 변환 오류.
10. FinOps 보고서: $/GB, 사랑하는 MISS, 선도적 인 지역.


17) 반 패턴

'캐시 없음' 은 "만일을 대비하여" 어디에나 있습니다.
캐시 키에는 모든 쿼리/헤더 → 0 히트 비율이 포함됩니다.
정적에 대한 쿠키 종속 응답 (전체 캐시를 끊음).
각 릴리스에서 전체 CDN을 지우십시오.
피크 동안 가장자리에서 긴 동기 변환.
'부실한 상태 '/' 부실한 경우 오류' 의 부재-UX의 급격한 저하.
'매장 없음' 없이 개인 데이터/응답 캐칭.


18) iGaming 컨텍스트/핀 테크: 실제 노트

토너먼트/이벤트: 리더 보드의 짧은 TTL (2-10 초) + SWR; 미리 따뜻한 게임 카드 및 배너.
지리 라이센싱: 국가 별 엣지 잠금/리디렉션, 캐시 키의 통화/로케일.
프로모션 및 쿠폰: 배너/조건을 캐시하지만 개인 한계는 없습니다.
책임있는 게임: 정책/제한 페이지-SWR의 반 정적; 개인 데이터- '매장 없음'.
PSP/KYC 웹 후크: CDN을 통하지 않거나 캐시가없고 타임 아웃이 어려운 에지 패스 스루가 아닙니다.


결과

강력한 CNC 전략은 올바른 헤더 및 캐시 키, MISS 축소를위한 계층/차폐, 정규화 및 보호를위한 엣지 기능, 빠른 릴리스를위한 장애/온난화 및 SLO 및 FinOps의 관찰 가능성입니다. 이러한 원칙을 준수함으로써 피크를 견딜 수 있고 사용자와 파트너가 TTFB를 예측할 수있는 빠르고 경제적 인 경계를 갖게됩니다.

Contact

문의하기

질문이나 지원이 필요하시면 언제든지 연락하십시오.우리는 항상 도울 준비가 되어 있습니다!

통합 시작

Email — 필수. Telegram 또는 WhatsApp — 선택 사항.

이름 선택 사항
Email 선택 사항
제목 선택 사항
메시지 선택 사항
Telegram 선택 사항
@
Telegram을 입력하시면 Email과 함께 Telegram에서도 답변드립니다.
WhatsApp 선택 사항
형식: +국가 코드 + 번호 (예: +82XXXXXXXXX).

버튼을 클릭하면 데이터 처리에 동의하는 것으로 간주됩니다.