Caching Level 설정
Cloudflare 의 cache 정책은 기본적으로 파일 확장자를 기반으로 caching 을 수행한다.
Cloudflare Edge Server 에서 caching 정책은 WEB GUI Dashboard 에서 간단히 설정할 수 있다.
경로 : Caching - Configuration - Caching Level
No query string : querystring 이 없는 request 만 caching 한다. 동적콘텐츠는 caching 하지 않는다.
- 예) GET /a.jpg
- GET/a.jpg?t=asd123 과 같은 querystring 이 있는 request는 caching 하지 않는다.
Ignore query string : querystring 을 무시하고 caching 한다. 동적콘텐츠는 caching 하지 않는다.
- 예) GET a.jpg?t=asd123
Standard : querystring 이 다른 request는 다른 콘텐츠로 보고 각각의 request를 caching 한다. 마찬가지로 동적콘텐츠는 caching 하지 않는다.
참조 : https://developers.cloudflare.com/cache/how-to/set-caching-levels/
모든 콘텐츠 caching (동적 콘텐츠 포함)
Cloudflare에서 제공하는 Page Rule를 통해 URL과 match 되는 조건으로 Caching Level 을 설정 할 수 있다.
경로 : Rules - Page Rules - Create Page Rule
URL : asterisk(*) 를 사용하여 하위 경로를 모두 지정할 수 있다.
- 예) www.a.com/test/*/plo.jpg
Cache Level
- Cache Everything : 동적 콘텐츠를 포함하여 지정하는 경로의 모든 콘텐츠를 caching 한다.
- Bypass : 지정하는 경로는 caching 하지 않는다.
Client 브라우저 cache TTL 설정하기
경로 : Caching - Configuration - Browser Cache TTL
이 설정을 통해 Response Header 에 아래와 같은 값이 추가 된다.
Cache-Control : max-age = 14400
Cloudflare를 사용하는 Plan 에 따라 최소 값의 설정이 다르다.
참조 : https://developers.cloudflare.com/cache/how-to/edge-browser-cache-ttl/
HTTP Header를 무시하고 모든 콘텐츠 caching 하기
Cloudflare Edge 에서 Caching Level을 "Cache Everything" 으로 설정하여 모든 콘텐츠를 Caching 하여도 HTTP Header에 포함된 Cache-Control 값을 무시하지 않는다.
Cache-Control 에 no-store, no-cache, must-revalidate 와 같은 값은 "Cache Everything" 로 설정하여도 Edge에서 caching 하지 않는다.
이러한 HTTP Header를 무시하는 설정은 Page Rule에 Edge Server Cache TTL을 설정 하여 해결 할 수 있다.
경로 : Rules - Page Rules - Create Page Rule
Cache Level : Cache Everything
and
Edge Cache TTL : <TTL>
의 조합으로 지정한 Edge TTL 시간동안 지정한 URL의 모든 콘텐츠를 HTTP Header 를 무시하고 caching 할 수 있다.
이 설정을 통해 Cache HIT 율을 높이고 Revalidate 율을 낮추게 되므로 Origin 의 Traffic 또한 감소하게 된다.
* 주의
- cache를 수행하는 서비스 도중 설정하게 될 경우 설정 시점부터 HIT나 MISS, EXPIRE, REVALIDATE 되는 request에 적용되는 건지 아니면 기존에 cache 되어 있는 콘텐츠에도 반영되는 건지는 알수 없다.
- 따라서 설정 후 purge를 수행하는 것도 고려해야한다.
참조 : https://blog.cloudflare.com/edge-cache-expire-ttl-easiest-way-to-override/
Edge TTL 또한 Cloudflare를 사용하는 Plan 에 따라 최소 값의 설정이 다르다.
'Public Cloud > Cloudflare' 카테고리의 다른 글
[Cloudflare] R2를 rclone으로 다뤄 보기[2] (0) | 2024.06.04 |
---|---|
[Cloudflare] R2를 rclone으로 다뤄 보기[1] (0) | 2024.06.04 |
[Cloudflare] CDN Cache 응답(Response Status)에 따른 HTTP 통신 파악하기 (0) | 2023.06.29 |
[Cloudflare] ColoCode를 Logstash에서 좌표값 Field 추가 하기 (0) | 2022.12.26 |
[Cloudflare] Spectrum Logpush 설정하기(azure) (0) | 2022.12.19 |