사실 nginx를 이용하면 하나의 서버에서 여러개의 도메인을 서빙할 수 있다.
근데 이 당시엔 그걸 몰라서, hls 서버랑 웹 서버의 도메인을 분리하기 위해 서버를 2개로 구성했던 것이다.
모든 서버는 단순히 route에 A Record를 직접 연결해서 구성했다. 로드밸런서 멀티캐스트 서버 이런거 없다.
RTMP / HLS Server
RTMP
처음 nginx를 빌드할 때 rtmp-module과 같이 빌드 한 nginx를 사용한다는 전제가 있다.
hls_path는 임의로 설정할 수 있는데, 중요한 건 nginx user가 해당 폴더에 대한 소유권이 있어야 한다
nginx default user는 www-data 이니 chown 을 이용하자.
latency를 최소화하기 위해서 fragment 크기를 줄이고 playlist-length 를 최소화했다.
클라이언트 단에서 fragment의 마지막 요소부터 시작시킨다면 저렇게 fragment가 작지 않아도 된다.
저렇게 설정했을 때 대략 4~6초 사이의 Latency가 생긴다.
HTTPS (hls)
rtmp module을 이용하여 /nginx/hls 폴더에 생성한 fragment를 서빙하는 서버이다.
80번 요청은 모두 https로 리다이렉트 해주고, 파일 확장자별로 content-type을 명시해주고, root 만 지정해주면 된다.
그래도 https를 쓰는게 맞는 것 같아 letsencrypt에서 발급받은 ssl 인증서만 붙여주었다.
지금 보면 엄청 단순하지만, 그 당시에는 잘 몰랐던 것 같다. 역시 뭐든 해보고 기록으로 남겨야 발전하는 것 같다.
'프로젝트 > 동영상' 카테고리의 다른 글
[라이브 스트리밍 서비스] - 1. 서비스의 구조 & 실행 방법 (2) | 2020.07.04 |
---|
댓글