diff --git a/services/bunnycdn.md b/services/bunnycdn.md new file mode 100644 index 0000000..4014f0d --- /dev/null +++ b/services/bunnycdn.md @@ -0,0 +1,614 @@ +--- +title: BunnyCDN Reference +updated: 2026-03-12 +tags: [cdn, bunnycdn, infrastructure, reference] +--- + +# BunnyCDN Reference + +Bunny.net CDN 공식 문서 기반 종합 레퍼런스. API, 설정, 보안, 가격 등 실무 참조용. + +## 1. Pull Zone Configuration + +### Origin 설정 +| 필드 | 타입 | 설명 | +|------|------|------| +| `OriginUrl` | string | 파일을 가져올 원본 서버 URL | +| `OriginType` | enum | `OriginUrl`, `DnsAccelerate`, `StorageZone`, `LoadBalancer`, `EdgeScript`, `MagicContainers`, `PushZone` | +| `OriginHostHeader` | string | Origin으로 전송할 Host 헤더 | +| `AddHostHeader` | boolean | 요청된 Host 헤더를 origin에 전달 | +| `DnsOriginPort` | int32 | Origin 포트 | +| `DnsOriginScheme` | string | Origin 프로토콜 (http/https) | +| `StorageZoneId` | int64 | Storage Zone을 origin으로 사용 시 ID | +| `VerifyOriginSSL` | boolean | Origin SSL 인증서 검증 | + +### 캐싱 설정 +| 필드 | 타입 | 설명 | +|------|------|------| +| `CacheControlMaxAgeOverride` | int64 | 캐시 제어 override (초) | +| `CacheControlPublicMaxAgeOverride` | int64 | 브라우저 캐시 override (초) | +| `IgnoreQueryStrings` | boolean | 캐시 키에서 쿼리스트링 무시 | +| `QueryStringVaryParameters` | array | 캐시 키에 사용할 특정 쿼리 파라미터 | +| `EnableCacheSlice` | boolean | 비디오 최적화용 cache slicing | +| `CacheErrorResponses` | boolean | Origin 에러 응답도 캐시 | +| `UseStaleWhileUpdating` | boolean | 업데이트 중 stale 캐시 제공 | +| `UseStaleWhileOffline` | boolean | Origin 다운 시 stale 캐시 제공 | +| `UseBackgroundUpdate` | boolean | 백그라운드 캐시 갱신 | +| `EnableSmartCache` | boolean | 스마트 캐싱 | +| `EnableRequestCoalescing` | boolean | 동일 요청 병합 | +| `RequestCoalescingTimeout` | int32 | 병합 락 시간 | +| `EnableQueryStringOrdering` | boolean | 쿼리스트링 정렬로 캐시 히트율 향상 | + +### Cache Vary 설정 +| 필드 | 설명 | +|------|------| +| `EnableWebpVary` | WebP 포맷별 캐시 분리 | +| `EnableAvifVary` | AVIF 포맷별 캐시 분리 | +| `EnableMobileVary` | 모바일 디바이스별 캐시 분리 | +| `EnableCountryCodeVary` | 국가별 캐시 분리 | +| `EnableHostnameVary` | 호스트네임별 캐시 분리 | +| `EnableCookieVary` | 쿠키별 캐시 분리 | +| `CookieVaryParameters` | Vary에 사용할 쿠키 목록 | + +### Origin Reliability +| 필드 | 설명 | +|------|------| +| `OriginRetries` | Origin 재시도 횟수 | +| `OriginConnectTimeout` | Origin 연결 타임아웃 (초) | +| `OriginResponseTimeout` | Origin 응답 타임아웃 (초) | +| `OriginRetry5XXResponses` | 5XX 에러 시 재시도 | +| `OriginRetryConnectionTimeout` | 연결 타임아웃 시 재시도 | +| `OriginRetryResponseTimeout` | 응답 타임아웃 시 재시도 | +| `OriginRetryDelay` | 재시도 전 대기 (ms) | +| `FollowRedirects` | Origin 리다이렉트 시 캐시 | + +### Geo Zone (지역별 활성화) +- `EnableGeoZoneUS` - 북미 +- `EnableGeoZoneEU` - 유럽 +- `EnableGeoZoneASIA` - 아시아/오세아니아 +- `EnableGeoZoneSA` - 남미 +- `EnableGeoZoneAF` - 아프리카 + +### Pull Zone 타입 +- `Type`: `Premium` (Standard) 또는 `Volume` (High Volume) +- Standard: 119 PoPs, 글로벌 최적 레이턴시 +- Volume: 10 PoPs, 대용량/비디오에 적합, 저렴 + +--- + +## 2. Custom Hostnames + +### 설정 프로세스 +1. Pull Zone 생성 시 기본 호스트네임: `{zonename}.b-cdn.net` +2. DNS에 CNAME 레코드 추가: `cdn.example.com` -> `{zonename}.b-cdn.net` + - TTL: 3600 이하 권장 + - Proxy 옵션 비활성화 필수 (Cloudflare 등에서) +3. Bunny 대시보드에서 Custom Hostname 추가 +4. SSL 인증서 설정 + +### SSL 인증서 옵션 +| 옵션 | 설명 | +|------|------| +| Free Let's Encrypt | 자동 발급/갱신. CNAME 설정 후 사용 가능 | +| Custom Certificate | Base64 인코딩된 인증서+키 업로드 | +| Wildcard SSL | Bunny DNS 사용 시만 자동 발급 가능, 아니면 커스텀 인증서 업로드 필요 | + +### ForceSSL +- HTTP -> HTTPS 자동 리다이렉트 +- 호스트네임별 개별 설정 가능 + +### SSL/TLS 프로토콜 설정 +| 필드 | 설명 | +|------|------| +| `EnableTLS1` | TLS 1.0 지원 (레거시, 비권장) | +| `EnableTLS1_1` | TLS 1.1 지원 (레거시, 비권장) | +| `EnableAutoSSL` | 호스트네임 추가 시 자동 SSL | +| `DisableLetsEncrypt` | Let's Encrypt 자동 발급 비활성화 | + +### SSL 인증서 유효성 검사 +- HTTP-01: 기본 방식 (`useOnlyHttp01=true`) +- DNS-01: Bunny DNS Zone 존재 시 사용 가능 (`useOnlyHttp01=false`). 와일드카드 도메인은 DNS-01만 지원 + +--- + +## 3. Edge Rules + +### Action 타입 (11종) +| Action | 설명 | +|--------|------| +| Force SSL | HTTP를 HTTPS로 리다이렉트 | +| Redirect to URL | 다른 URL로 리다이렉트 | +| Change Origin URL | 다른 origin 서버로 라우팅 | +| Override Cache Time | 커스텀 캐시 시간 설정 | +| Block Request | 조건 매칭 요청 차단 | +| Set Response Header | 응답 헤더 추가/수정 | +| Set Request Header | Origin으로 보내는 요청 헤더 추가/수정 | +| Force Download | 브라우저에서 파일 다운로드 강제 | +| Disable/Enable Token Auth | 요청별 토큰 인증 제어 | +| Override Browser Cache Time | 브라우저 캐시 시간 커스텀 | +| Set Network Rate Limit | 매칭 요청의 대역폭 제한 | + +### Trigger 타입 +| Trigger | 설명 | +|---------|------| +| Request URL | URL 경로 매칭 | +| Request Header | 특정 HTTP 헤더 매칭 | +| Response Header | 응답 헤더 매칭 | +| Country Code | GeoIP 국가 코드 매칭 | +| Remote IP | 클라이언트 IP 매칭 | +| File Extension | 파일 확장자 매칭 | + +### Match 조건 +- **Match Any**: 하나라도 매칭되면 실행 +- **Match All**: 모든 조건 매칭 시 실행 +- **Match None**: 어떤 것도 매칭되지 않을 때 실행 +- 하나의 룰에 여러 트리거 + 여러 액션 설정 가능 + +### Variable Expansion +Edge Rules에서 `%{Collection.Key}` 문법으로 동적 변수 사용 가능. + +**지원 액션**: Change Origin URL, Redirect to URL, Set Request Header, Set Response Header + +| Collection | 변수 | 설명 | +|------------|-------|------| +| RequestHeaders | `%{RequestHeaders.Host}` | 요청 Host 헤더 | +| RequestHeaders | `%{RequestHeaders.User-Agent}` | User-Agent | +| RequestHeaders | `%{RequestHeaders.Accept-Language}` | 언어 | +| Query | `%{Query.paramname}` | 쿼리 파라미터 값 | +| Request | `%{Request.Method}` | HTTP 메서드 | +| Request | `%{Request.Path}` | 전체 경로 (쿼리 포함) | +| Request | `%{Request.QueryString}` | 쿼리스트링만 | +| Path | `%{Path.0}`, `%{Path.0-2}`, `%{Path.3-}` | URL 경로 세그먼트 (인덱스/범위) | +| Url | `%{Url.FileName}` | 파일명 | +| Url | `%{Url.Extension}` | 확장자 | +| Url | `%{Url.Directory}` | 디렉토리 | +| Url | `%{Url.Hostname}` | 호스트네임 | +| User | `%{User.IP}` | 클라이언트 IP | +| User | `%{User.CountryCode}` | 2자리 국가 코드 | +| Server | `%{Server.ZoneCode}` | 서버 존 코드 | +| Server | `%{Server.ID}` | 서버 ID | + +--- + +## 4. API Reference + +### 기본 정보 +- **Base URL**: `https://api.bunny.net` +- **인증**: `AccessKey` 헤더에 API 키 +- **API 키 위치**: 대시보드 > Account > API Keys + +### API 카테고리 +| 카테고리 | 설명 | +|----------|------| +| Pull Zones | CDN 존 관리 | +| Storage Zones | 엣지 스토리지 | +| DNS Zones | DNS 관리 | +| Stream Video Libraries | 비디오 콘텐츠 | +| Statistics | 대역폭/성능 통계 | +| Billing | 과금/소비 데이터 | +| Purge | 캐시 무효화 | +| API Keys | 자격증명 관리 | +| Countries | 지역 차단 참조 | +| Regions | 엣지 서버 위치 | + +### 주요 Pull Zone 엔드포인트 + +#### List Pull Zones +``` +GET /pullzone +Query: page, perPage (5-1000), search, includeCertificate +Response: { Items[], CurrentPage, TotalItems, HasMoreItems } +``` + +#### Add Pull Zone +``` +POST /pullzone +Body: { Name, OriginUrl, Type, ... } +``` + +#### Update Pull Zone +``` +POST /pullzone/{id} +Body: (전체 설정 필드 - 섹션 1 참조) +``` + +#### Delete Pull Zone +``` +DELETE /pullzone/{id} +``` + +### Hostname 관리 엔드포인트 + +#### Add Custom Hostname +``` +POST /pullzone/{id}/addHostname +Body: { "Hostname": "cdn.example.com" } +Response: 204 +``` + +#### Remove Custom Hostname +``` +DELETE /pullzone/{id}/removeHostname +Body: { "Hostname": "cdn.example.com" } +Response: 204 +``` + +#### Set Force SSL +``` +POST /pullzone/{id}/setForceSSL +Body: { "Hostname": "cdn.example.com", "ForceSSL": true } +Response: 204 +``` + +#### Load Free Certificate (Let's Encrypt) +``` +GET /pullzone/loadFreeCertificate?hostname=cdn.example.com&useOnlyHttp01=true +- useOnlyHttp01=false: Bunny DNS Zone 존재 시 DNS-01 검증 시도 +- 와일드카드 도메인: DNS-01만 지원 +Response: 200 +``` + +#### Add Custom Certificate +``` +POST /pullzone/{id}/addCertificate +Body: { + "Hostname": "cdn.example.com", + "Certificate": "", + "CertificateKey": "" +} +Response: 204 +``` + +### Cache Purge 엔드포인트 + +#### Purge Pull Zone Cache (전체 또는 태그별) +``` +POST /pullzone/{id}/purgeCache +Body: { "CacheTag": "optional-tag" } // CacheTag 생략 시 전체 퍼지 +Response: 204 +``` + +#### Purge URL (개별 URL) +``` +POST /purge?url=https://cdn.example.com/path/file.js +Response: 204 +``` + +--- + +## 5. Bunny Shield (DDoS Protection) + +### 개요 +Bunny Shield는 통합 보안 스택. 200+ Tbps 네트워크, 119개 글로벌 스크러빙 센터. + +### 주요 기능 6가지 +| 기능 | 설명 | +|------|------| +| WAF | OWASP Top 10, zero-day 익스플로잇 차단 | +| DDoS Protection | 대규모 공격 완화, stateful mitigation | +| Rate Limiting | IP/사용자/경로별 요청 제한 | +| Bot Detection | 악성 봇 실시간 탐지/차단 | +| Access Lists | VPN, Tor 노드 등 차단 | +| Upload Scanning | 파일 바이러스/악성코드/CSAM 스캔 | + +### DDoS Protection 설정 +Pull Zone 필드: +- `ShieldDDosProtectionEnabled`: boolean +- `ShieldDDosProtectionType`: `DetectOnly`, `ActiveStandard`, `ActiveAggressive` + +### DDoS 보호 메커니즘 +1. **Stateful Request Tracking**: 요청 정당성 검증 +2. **JavaScript Proof-of-Work Challenge**: 브라우저에 연산 과제 부여, 봇 차별화 +3. **Behavioral Analysis**: 실시간 트래픽 패턴 분석 + +### DDoS Sensitivity 레벨 +| 레벨 | 값 | 설명 | +|------|-----|------| +| Low | 1 | 최소 보호 | +| Medium | 2 | 권장 시작점 | +| High | 3 | 강화 보호 | +| Extreme | 4 | 항시 활성화 (Always-On) | + +--- + +## 6. WAF (Web Application Firewall) + +### 보호 범위 +- **SQL Injection**: 쿼리 파라미터/폼의 SQL 인젝션 탐지/차단 +- **XSS Protection**: 악성 스크립트 실행 시도 차단 +- **Remote File Inclusion (RFI)**: 원격 서버 파일 포함 시도 차단 +- **OWASP Top 10**: 전체 커버리지 + +### 기능 +- AI 기반 자동 위협 탐지 +- 커스텀 보안 규칙 설정 가능 +- 실시간 트래픽 모니터링 +- 저레이턴시 처리 +- 정기적 위협 정의 업데이트 + +### WAF 로그 API +``` +GET https://api.bunny.net/shield/event-logs/{shieldZoneId} +``` +차단/허용 트래픽의 상세 로그 조회. + +--- + +## 7. Optimizer (Image Optimization) + +### 가격 +- **$9.50/월** per Pull Zone +- 무제한 요청, 무제한 최적화, 무제한 이미지 +- 대역폭은 별도 과금 + +### 설정 필드 +| 필드 | 설명 | +|------|------| +| `OptimizerEnabled` | Optimizer 활성화 | +| `OptimizerEnableWebP` | WebP 포맷 변환 | +| `OptimizerEnableManipulationEngine` | 이미지 조작 엔진 | +| `OptimizerImageQuality` | 데스크톱 이미지 품질 (1-100) | +| `OptimizerMobileImageQuality` | 모바일 이미지 품질 (1-100) | +| `OptimizerDesktopMaxWidth` | 데스크톱 최대 이미지 폭 (0-5000) | +| `OptimizerMobileMaxWidth` | 모바일 최대 이미지 폭 (0-5000) | +| `OptimizerMinifyCSS` | CSS 미니파이 | +| `OptimizerMinifyJavaScript` | JavaScript 미니파이 | +| `OptimizerPrerenderHtml` | SEO HTML 프리렌더 | +| `OptimizerAutomaticOptimizationEnabled` | 자동 최적화 | +| `OptimizerEnableUpscaling` | 이미지 업스케일링 | +| `OptimizerTunnelEnabled` | Origin 터널 최적화 | + +### Watermark 설정 +| 필드 | 설명 | +|------|------| +| `OptimizerWatermarkEnabled` | 워터마크 활성화 | +| `OptimizerWatermarkUrl` | 워터마크 이미지 URL | +| `OptimizerWatermarkPosition` | `BottomLeft`, `BottomRight`, `TopLeft`, `TopRight`, `Center`, `CenterStretch` | +| `OptimizerWatermarkOffset` | 오프셋 거리 | +| `OptimizerWatermarkMinImageSize` | 워터마크 적용 최소 이미지 크기 | + +### Static HTML Optimization +- `OptimizerStaticHtmlEnabled`: 정적 HTML 최적화 +- `OptimizerStaticHtmlWordPressPath`: WordPress 경로 +- `OptimizerStaticHtmlWordPressBypassCookie`: WordPress 바이패스 쿠키 + +--- + +## 8. DNS Integration + +### Bunny DNS 지원 레코드 타입 +| Enum | 타입 | 설명 | +|------|------|------| +| 0 | A | IPv4 | +| 1 | AAAA | IPv6 | +| 2 | CNAME | Canonical Name | +| 3 | TXT | 텍스트 | +| 4 | MX | 메일 | +| 5 | Redirect (RDR) | 리다이렉트 레코드 | +| 6 | Flatten | CNAME Flattening | +| 7 | PullZone | Pull Zone 직접 매핑 | +| 8 | SRV | Service | +| 9 | CAA | Certificate Authority Authorization | +| 10 | PTR | Pointer | +| 11 | Script | DNS 스크립트 연결 | +| 12 | NS | Name Server | +| 13 | SVCB | Service Binding | +| 14 | HTTPS | HTTPS Service | +| 15 | TLSA | TLS Authentication | + +### 특수 레코드 +- **PullZone 레코드**: DNS 레코드를 기존 Pull Zone에 직접 매핑 +- **Flatten 레코드**: 루트 도메인에서 CNAME 기능 (ANAME 역할) +- **Script 레코드**: DNS 스크립트 연결 +- **Accelerated 레코드**: CDN 가속을 위한 Pull Zone 연결 (`Accelerated: true`, `AcceleratedPullZoneId`) + +### DNS API +``` +PUT /dnszone/{zoneId}/records +Body: { + "Type": 0, // 레코드 타입 enum + "Name": "cdn", + "Value": "1.2.3.4", + "Ttl": 3600, + "Priority": 0, + "Accelerated": true, + "PullZoneId": 12345, + "AutoSslIssuance": true, + "MonitorType": 0, // 0-3 + "SmartRoutingType": 0, // 0-2 + "Comment": "CDN record" +} +Response: 201 +``` + +### DNS 모니터링 +Bunny DNS는 레코드 모니터링 기능 내장 (`MonitorType` 필드). + +--- + +## 9. Origin Shield + +### 개요 +Origin Shield는 CDN 엣지 PoP와 Origin 사이의 **2차 캐싱 레이어**. +전 세계 여러 PoP에서 같은 파일 요청 시, Origin Shield가 단일 캐싱 포인트로 동작하여 Origin 트래픽을 대폭 감소. + +### 설정 필드 +| 필드 | 설명 | +|------|------| +| `EnableOriginShield` | Origin Shield 활성화 | +| `OriginShieldZoneCode` | Shield 위치 존 코드 | +| `OriginShieldEnableConcurrencyLimit` | 동시 요청 제한 | +| `OriginShieldMaxConcurrentRequests` | 최대 동시 요청 수 | +| `OriginShieldQueueMaxWaitTime` | 큐 최대 대기 시간 (ms) | +| `OriginShieldMaxQueuedRequests` | 최대 큐 요청 수 | + +### 동작 방식 +``` +사용자 -> 엣지 PoP (1차 캐시) -> Origin Shield (2차 캐시) -> Origin 서버 +``` +- 엣지 PoP 캐시 미스 시, Origin 직접 요청 대신 Origin Shield에 요청 +- Origin Shield에 캐시가 있으면 바로 응답 +- Origin Shield도 캐시 미스면 Origin에 1회만 요청 + +--- + +## 10. WebSocket Support + +### 설정 +| 필드 | 타입 | 설명 | +|------|------|------| +| `EnableWebSockets` | boolean | WebSocket 프로토콜 연결 허용 | +| `MaxWebSocketConnections` | int32 | 최대 동시 WebSocket 연결 (500-25,000) | + +--- + +## 11. Logging and Monitoring + +### 로그 설정 +| 필드 | 설명 | +|------|------| +| `EnableLogging` | 액세스 로깅 활성화 | +| `LogFormat` | `Plain` 또는 `JSON` | +| `LoggingIPAnonymizationEnabled` | IP 익명화 | +| `LogAnonymizationType` | `OneDigit` 또는 `Drop` | +| `LoggingSaveToStorage` | 로그를 Storage Zone에 저장 | +| `LoggingStorageZoneId` | 로그 저장 Storage Zone ID | + +### Log Forwarding (실시간 로그 전송) +| 필드 | 설명 | +|------|------| +| `LogForwardingEnabled` | 로그 포워딩 활성화 | +| `LogForwardingHostname` | Syslog 엔드포인트 호스트 | +| `LogForwardingPort` | 포트 | +| `LogForwardingToken` | 인증 토큰 | +| `LogForwardingProtocol` | `UDP`, `TCP`, `TCPEncrypted`, `DataDog` | +| `LogForwardingFormat` | `Plain` 또는 `JSON` | + +### Log Forwarding 특성 +- Syslog RFC 5424 포맷 +- 10-30초 딜레이 +- UDP: 암호화 없음, 패킷 손실 가능 +- TCP/TCPEncrypted: 안정적 전송 +- DataDog 직접 연동 지원 + +### 보안/접근제어 관련 로깅 +- WAF 로그: `GET /shield/event-logs/{shieldZoneId}` +- Pull Zone 통계: Statistics API + +--- + +## 12. Pricing + +### Monthly Minimum +**$1/월** + +### Standard Network (119 PoPs) +| 지역 | 가격/GB | +|------|---------| +| Europe & North America | $0.01 | +| Asia & Oceania | $0.03 | +| South America | $0.045 | +| Middle East & Africa | $0.06 | + +### Volume Network (10 PoPs) +| 구간 | 가격/GB | +|------|---------| +| 0 - 500 TB | $0.005 | +| 500 TB - 1 PB | $0.004 | +| 1 PB - 2 PB | $0.002 | +| 2 PB+ | 커스텀 (영업 문의) | + +### 추가 서비스 가격 +| 서비스 | 가격 | +|--------|------| +| Bunny Optimizer | $9.50/월 per Pull Zone | +| Bunny Shield | 별도 (보안 기능 통합) | +| Storage Zone | 별도 과금 | +| Stream | 별도 과금 | + +### Pull Zone 설정으로 비용 제어 +- `MonthlyBandwidthLimit`: 월간 대역폭 한도 (bytes) +- `BudgetRedirectedCountries`: 특정 국가를 저렴한 지역으로 리다이렉트 +- 지역별 Geo Zone 활성화/비활성화로 과금 지역 제어 +- 언제든 Standard <-> Volume 전환 가능 + +--- + +## 13. Security & Access Control (기타) + +### Referrer/IP 제어 +| 필드 | 설명 | +|------|------| +| `AllowedReferrers` | 허용 Referrer 호스트 목록 | +| `BlockedReferrers` | 차단 Referrer 호스트 목록 | +| `BlockNoneReferrer` | Referrer 없는 직접 접근 차단 | +| `BlockedIps` | IP 차단 목록 | +| `BlockedCountries` | 국가 코드 차단 (2자리) | +| `BlockRootPathAccess` | 루트 경로 접근 차단 | +| `BlockPostRequests` | POST 요청 차단 | + +### Rate Limiting (Pull Zone 레벨) +| 필드 | 설명 | +|------|------| +| `ConnectionLimitPerIPCount` | IP당 최대 연결 수 | +| `RequestLimit` | 초당 최대 요청 | +| `LimitRatePerSecond` | IP별 초당 속도 제한 | +| `LimitRateAfter` | 속도 제한 전 전송량 | +| `BurstSize` | IP 차단 전 최대 버스트 | + +### Token Authentication +- `ZoneSecurityEnabled`: URL 토큰 인증 활성화 +- `ZoneSecurityIncludeHashRemoteIP`: 토큰에 원격 IP 포함 + +### CORS +- `EnableAccessControlOriginHeader`: CORS 헤더 활성화 +- `AccessControlOriginHeaderExtensions`: CORS 적용 파일 확장자 + +### AWS S3 Origin 연동 +- `AWSSigningEnabled`: AWS 요청 서명 +- `AWSSigningKey`, `AWSSigningSecret`, `AWSSigningRegionName` + +--- + +## 14. 기타 기능 + +### Perma-Cache +- `PermaCacheStorageZoneId`: 영구 캐시용 Storage Zone +- `PermaCacheType`: `Automatic` 또는 `Manual` + +### Custom Error Pages +- `ErrorPageEnableCustomCode`: 커스텀 에러 페이지 HTML +- `ErrorPageCustomCode`: HTML 코드 +- `ErrorPageWhitelabel`: 브랜딩 제거 + +### Preloading Screen +- `PreloadingScreenEnabled`: 로딩 화면 표시 +- `PreloadingScreenTheme`: `Light` / `Dark` +- `PreloadingScreenDelay`: 표시 전 딜레이 (0-10,000ms) +- DDoS Challenge 등에서 사용 + +### Sticky Sessions +- `StickySessionType`: `Off` / `On` +- `StickySessionCookieName`: 세션 쿠키 이름 +- `StickySessionClientHeaders`: 클라이언트 식별 헤더 + +### AI 기능 +- `EnableBunnyImageAi`: AI 이미지 생성 +- `BunnyAiImageBlueprints`: AI 이미지 블루프린트 + +--- + +## 참고 링크 + +- [API Reference](https://docs.bunny.net/reference/bunnynet-api-overview) +- [Pull Zone API](https://docs.bunny.net/reference/pullzonepublic_index) +- [Edge Rules Docs](https://docs.bunny.net/cdn/edge-rules) +- [Variable Expansion](https://docs.bunny.net/cdn/edge-rules/variable-expansion) +- [Bunny Shield](https://docs.bunny.net/docs/bunny-shield-documentation) +- [WAF](https://docs.bunny.net/docs/shield-waf) +- [DDoS Mitigation](https://docs.bunny.net/docs/shield-ddos-mitigation) +- [Rate Limiting](https://docs.bunny.net/shield/rate-limiting) +- [Log Forwarding](https://docs.bunny.net/cdn/logging/forwarding) +- [CDN Pricing](https://bunny.net/pricing/cdn/) +- [Optimizer Pricing](https://bunny.net/pricing/optimizer/) +- [Support Hub](https://support.bunny.net/hc/en-us/)