CDN Origin Shield — ochrona serwera przed ruchem CDN
Opublikowano: 10 kwietnia 2026 · Kategoria: Hosting / Wydajność
CDN ma dziesiątki węzłów brzegowych (PoP) rozsiane po całym świecie. Bez Origin Shield każdy z nich może wysłać osobne żądanie do Twojego serwera podczas cache miss — np. 50 węzłów × 100 cache misses = 5000 żądań do origin. Shield redukuje to do jednego centralnego punktu i chroni serwer przed przeciążeniem.
Architektura bez i z Origin Shield
Bez Shield (cache miss na każdym PoP idzie do origin):
Użytkownik EU → PoP Frankfurt → cache miss → Serwer Origin
Użytkownik US → PoP New York → cache miss → Serwer Origin
Użytkownik Asia → PoP Tokyo → cache miss → Serwer Origin
↑
3 żądania do origin
---
Z Origin Shield (jeden węzeł zbiera żądania od wszystkich PoP):
Użytkownik EU → PoP Frankfurt → cache miss → Origin Shield → Serwer Origin
Użytkownik US → PoP New York → cache miss → Origin Shield ↗ (już ma)
Użytkownik Asia → PoP Tokyo → cache miss → Origin Shield ↗ (już ma)
↑
1 żądanie do origin Korzyści Origin Shield
| Aspekt | Bez Shield | Z Shield |
|---|---|---|
| Żądania do origin | N × cache misses (N = liczba PoP) | 1 × cache misses |
| Cache hit ratio globalne | 60-75% | 85-95% |
| Obciążenie serwera | Wysokie przy popularnych treściach | Zredukowane o 80-95% |
| Koszt transferu origin | N × koszt/GB do CDN | 1 × koszt/GB (w górę) |
| Odporność na spike | Niska — surge do origin | Wysoka — Shield absorbuje |
BunnyCDN — konfiguracja Origin Shield
BunnyCDN nazywa Origin Shield "Perma-Cache" lub "Origin Shield" i oferuje go jako część standardowej konfiguracji Pull Zone. Opcja dostępna w panelu:
# BunnyCDN — API konfiguracja Origin Shield
# Panel: CDN → Pull Zone → Origin Shield
# Wybierz lokalizację Shield (najblizszą do origin serwera):
# - Frankfurt (EU)
# - New York (US East)
# - Los Angeles (US West)
# - Singapore (Asia)
# - Sydney (AU)
# API (opcjonalnie przez curl):
curl -X POST "https://api.bunny.net/pullzone/{ZONE_ID}" \
-H "AccessKey: {API_KEY}" \
-H "Content-Type: application/json" \
-d '{
"OriginShieldEnabled": true,
"OriginShieldZoneCode": "FR"
}' # BunnyCDN — cache invalidation przez API
curl -X POST "https://api.bunny.net/pullzone/{ZONE_ID}/purgeCache" \
-H "AccessKey: {API_KEY}"
# Invalidacja konkretnego pliku
curl -X POST "https://api.bunny.net/purge" \
-H "AccessKey: {API_KEY}" \
-d '{"url": "https://cdn.example.com/image.jpg"}' AWS CloudFront — Origin Shield
# AWS CloudFront — włączenie Origin Shield przez CLI
aws cloudfront update-distribution \
--id "YOUR_DISTRIBUTION_ID" \
--distribution-config file://dist-config.json
# W konfiguracji dist-config.json (origins section):
# "OriginShield": {
# "Enabled": true,
# "OriginShieldRegion": "eu-central-1" # Frankfurt — blisko origin
# }
# Regiony Origin Shield CloudFront:
# us-east-1 (N. Virginia)
# us-east-2 (Ohio)
# us-west-2 (Oregon)
# ap-south-1 (Mumbai)
# ap-northeast-2 (Seoul)
# ap-southeast-1 (Singapore)
# ap-northeast-1 (Tokyo)
# eu-central-1 (Frankfurt)
# eu-west-1 (Ireland)
# sa-east-1 (São Paulo) # Koszt Origin Shield w CloudFront # $0.008 - $0.012 per 10,000 requests do Shield (zależy od regionu) # Zaoszczędza na kosztach origin — przelicz: koszt żądań Shield vs koszt EC2/transfer # Monitoring w CloudWatch — metryki per behavior: # OriginLatency, CacheHitRate, Requests
Fastly — Shielding
# Fastly Shielding — konfiguracja przez VCL lub UI
# UI: Service → Origins → wybierz origin → Shield: "Frankfurt, DE"
# VCL (Fastly):
# sub vcl_miss {
# set bereq.http.Fastly-SSL = "1";
# // Shield jest obsługiwany automatycznie po ustawieniu w konfiguracji
# }
# Fastly Surrogate-Key (Purge po tagach):
# Origin dodaje nagłówek: Surrogate-Key: article-123 product-456
# Purge API:
curl -X POST "https://api.fastly.com/service/{SERVICE_ID}/purge" \
-H "Fastly-Key: {API_KEY}" \
-H "surrogate-key: article-123" Kiedy Origin Shield warto włączyć?
- Globalna publiczność + wiele PoP — przy CDN z 50+ węzłami Shield redukuje origin requests o 80-95%.
- Treści viralowe — artykuł na Reddit, produkt popularny na Black Friday — Shield absorbuje spike, origin nie pada.
- Wolny lub kosztowny origin — dynamiczne strony PHP z wolnym DB, lub płatny transfer danych z cloud serwera.
- Serwer z limitami połączeń — shared hosting z max. 25 połączeń — Shield redukuje liczbę równoległych żądań do origin.
Kiedy Shield nie jest potrzebny?
- Mały ruch (poniżej 100k wizyt/miesiąc) — cache miss ratio jest i tak niski
- Cloudflare bez Enterprise — Cloudflare centralizuje żądania do origin przez własną infrastrukturę
- Aplikacje real-time z krótkim TTL (API z TTL=10s) — Shield nie pomaga, gdy treść jest prawie zawsze odświeżana
- Treści w 100% dynamiczne (personalizowane) — cachowanie niemożliwe, Shield bezużyteczny