Origin Cache Control
LL-HLS Origin Server Cache 제어하기
HTTP Response에 Cache-Control
Header를 추가하여 Edge Server 또는 CDN Cache Server에서 콘텐츠를 Cache에 보관하는 시간을 지정 할 수 있습니다.
다음과 같이 Server.xml
의 <Publishers><LLHLS><CacheControl>
에서 설정 할 수 있습니다:
<?xml version="1.0" encoding="UTF-8"?>
<Server version="8">
...
<VirtualHosts>
<VirtualHost>
<Applications>
<Application>
<Publishers>
...
<LLHLS>
<OriginMode>true</OriginMode>
<CacheControl>
<MasterPlaylistMaxAge>0</MasterPlaylistMaxAge>
<ChunklistMaxAge>0</ChunklistMaxAge>
<ChunklistWithDirectivesMaxAge>60</ChunklistWithDirectivesMaxAge>
<SegmentMaxAge>-1</SegmentMaxAge>
<PartialSegmentMaxAge>-1</PartialSegmentMaxAge>
</CacheControl>
</LLHLS>
</Publishers>
</Application>
</Applications>
</VirtualHost>
</VirtualHosts>
</Server>
MasterPlaylistMaxAge
Master Playlist의 max-age를 지정합니다. 이것은 Stream이 생성되어 있는 동안 변경되지 않습니다.
ChunklistMaxAge
Media Playlist의 max-age를 지정합니다. 이것은 항상 최신 상태의 Media Playlist를 응답해야 하는 URL이며 LL-HLS의 Delivery Directives가 없습니다. 따라서 이것은 가능한 짧게 Cache하거나 또는 Cache하지 않아야 합니다.
ChunklistWithDirectivesMaxAge
SegmentMaxAge
Segment File의 max-age를 지정합니다. Segment File의 URL은 Stream이 생성되어 있는 동안 유일하며, 같은 URL의 콘텐츠는 변경되지 않기 때문에 오랜 시간 Cache할 수 있습니다.
PartialSegmentMaxAge
Partial Segment File의 max-age를 지정합니다. Partial Segment File의 URL은 Stream이 생성되어 있는 동안 유일하며, 같은 URL의 콘텐츠는 변경되지 않기 때문에 오랜 시간 Cache할 수 있습니다.
<CacheControl>
Element의 의미
<CacheControl>
Element의 의미0
CacheControl: no-cache, no-store
콘텐츠를 절대 캐시하지 말 것을 지시하여 매 요청마다 새로운 데이터를 Server에서 받아옵니다.
양수 (0 초과)
CacheControl: max-age=<seconds>
지정된 시간 동안 Cache가 유효하도록 지시합니다.
-1
CacheControl
헤더 미포함
Origin에서 명시적인 Cache Header를 보내지 않도록 지시합니다. 이 값을 통해 Cache를 사용하지 않거나, CDN이나 Cache 서버의 자체 정책을 적용하거나, Client나 Browser의 기본 Cache 동작을 따를 수 있습니다.
<CacheControl>
에 0 값 사용 시 서버 부하가 증가할 수 있고, -1 값 사용 시 예상치 못한 캐싱 동작이 발생할 수 있으므로 테스트가 필요합니다.