본문 바로가기
프로젝트/동영상

[라이브 스트리밍 서비스] - 2. nginx 설정 및 https 설정

by Riverandeye 2020. 7. 4.

사실 nginx를 이용하면 하나의 서버에서 여러개의 도메인을 서빙할 수 있다.

근데 이 당시엔 그걸 몰라서, hls 서버랑 웹 서버의 도메인을 분리하기 위해 서버를 2개로 구성했던 것이다. 

 

모든 서버는 단순히 route에 A Record를 직접 연결해서 구성했다. 로드밸런서 멀티캐스트 서버 이런거 없다.

 

RTMP / HLS Server

RTMP

 

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)

 

hls 영역

 

rtmp module을 이용하여 /nginx/hls 폴더에 생성한 fragment를 서빙하는 서버이다. 

80번 요청은 모두 https로 리다이렉트 해주고, 파일 확장자별로 content-type을 명시해주고, root 만 지정해주면 된다.

그래도 https를 쓰는게 맞는 것 같아 letsencrypt에서 발급받은 ssl 인증서만 붙여주었다. 

 

지금 보면 엄청 단순하지만, 그 당시에는 잘 몰랐던 것 같다. 역시 뭐든 해보고 기록으로 남겨야 발전하는 것 같다. 

댓글