Origin Server Redundancy
(LL)-HLS Origin Server 이중화 설정하기
OvenMediaEngine의 Low-Latency HLS Origin Server (또는 HLS Origin Server)를 이중화로 구성하는 경우, Origin 이중화 설정을 통해 Primary Origin Server와 Secondary Origin Server의 Segment 파일명을 동일하게 만들 수 있습니다.
이를 통해, Edge Server 또는 CDN Cache Server는 Primary Origin Server에 장애가 발생하면 Primary Origin Server 대신 Secondary Origin Server를 연결하여 동일한 콘텐츠를 다운로드 받을 수 있습니다.
다음과 같이 Server.xml
에서 <Publishers><LLHLS><ServerTimeBasedSegmentNumbering>
( 또는 <Publishers><HLS><ServerTimeBasedSegmentNumbering>
)을 활성화 하십시오:
<?xml version="1.0" encoding="UTF-8"?>
<Server version="8">
...
<VirtualHosts>
<VirtualHost>
<Applications>
<Application>
<Publishers>
...
<LLHLS>
<ServerTimeBasedSegmentNumbering>true</ServerTimeBasedSegmentNumbering>
</LLHLS>
</Publishers>
</Application>
</Applications>
</VirtualHost>
</VirtualHosts>
</Server>
이 기능은 서버 시간을 기준으로 Segment 파일명을 생성하므로 Primary Origin Server와 Secondary Origin Server의 시간을 동기화 해야 합니다.
Default Query String 사용하기
사용자는 Low-Latency HLS (또는 Legacy HLS)의 기본 동작 방식을 <DefaultQueryString>
을 통해 제어 할 수 있습니다.
다음과 같이 Server.xml
의 <Publishers><LLHLS><DefaultQueryString>
(또는 <Publishers><HLS><DefaultQueryString>)
에서 설정 할 수 있습니다:
<?xml version="1.0" encoding="UTF-8"?>
<Server version="8">
...
<VirtualHosts>
<VirtualHost>
<Applications>
<Application>
<Publishers>
...
<LLHLS>
<DefaultQueryString>
<Query>
<Key>_HLS_legacy</Key>
<Value>NO</Value>
</Query>
<Query>
<Key>_HLS_rewind</Key>
<Value>YES</Value>
</Query>
</DefaultQueryString>
</LLHLS>
</Publishers>
</Application>
</Applications>
</VirtualHost>
</VirtualHosts>
</Server>
_HLS_legacy
YES | NO * Default: NO
_HLS_legacy
값을 YES
로 설정하면, LL-HLS Playlist 내에 Partial Segment 정보를 제거하여 Legacy HLS (HLSv6 등)와 동일하게 동작합니다.
* LL-HLS Only
_HLS_rewind
YES | NO * Default: YES
Query String 승계하기
사용자가 <PropagateQueryString>
을 활성화하면, 최초 Master Playlist 요청에 포함된 Query String이 하위 모든 요청 (Media Playlist, Segment, Partial Segment)에 자동으로 포함됩니다. Query String에 Session Key, Authentication Token 등을 포함시켜 이 기능을 활용한다면, 모든 요청을 CDN에서 검사할 수 있기 때문에 콘텐츠 접근 제어가 용이합니다.
다음과 같이 Server.xml
의 <Publishers><LLHLS><PropagateQueryString>
(또는 <Publishers><HLS><PropagateQueryString>)
에서 설정 할 수 있습니다:
<?xml version="1.0" encoding="UTF-8"?>
<Server version="8">
...
<VirtualHosts>
<VirtualHost>
<Applications>
<Application>
<Publishers>
...
<LLHLS>
<OriginMode>true</OriginMode>
<PropagateQueryString>true</PropagateQueryString>
</LLHLS>
</Publishers>
</Application>
</Applications>
</VirtualHost>
</VirtualHosts>
</Server>
Query String에 민감한 정보를 직접 포함시키지 않도록 주의가 필요합니다.
Cache 유효성 검사
이 기능을 활성화 하면 캐시된 리소스 버전이 OvenMediaEngine의 리소스와 동일한지 여부를 식별 할 수 있습니다. HTTP 요청에 If-None-Match: "<etag_value>"
헤더가 포함되어 있을 때 OvenMediaEngine의 리소스 Etag 와 비교하여 값이 일치 할 경우 304 Not-Modified
를 반환합니다.
다음과 같이 Server.xml
의 <Modules><ETag>
에서 활성화 할 수 있습니다.
<Server>
<Modules>
<ETag>
<Enable>true</Enable>
</ETag>
</Modules>
</Server>