AWS EC2 Ubuntu 22.04에서 Nginx RTMP 서버 구축하기

하스레·2022년 8월 13일
1

서버: AWS EC2
운영체제: 우분투 22.04

1. 터미널에서 ec2 서버에 접속한다.

2. nginx를 설치한다. 자세한 설치 설명 참고

$ sudo apt update && sudo apt upgrade
$ sudo apt install nginx -y

3. libnginx-mod-rtmp를 설치한다. 자세한 설치 설명 참고
우분투 22.04에 설치할 수 있는 rtmp 모듈 정보가 제한적이어서 찾느라 고생했다 흑 ㅜㅜ

$ sudo apt update
$ sudo apt install libnginx-mod-rtmp

여기서부턴 이 글을 따라했다.
진짜... 이 글 없었으면 아무것도 못했을듯 ㅠㅠ 너무너무너무 감사하다... 진짜...

4. '/etc/nginx/nginx.conf' 파일을 열어서 nginx 설정을 바꿔준다.

$ sudo nano /etc/nginx/nginx.conf

nano를 사용해서 고쳐보자. 파일을 열어서 마지막에 다음을 추가한다. 그리고 control+x, y, 엔터를 차례로 누르면 저장된다.

. . .
rtmp {
        server {
                listen 1935;
                chunk_size 4096;
                allow publish 127.0.0.1;
                deny publish all;

                application live {
                        live on;
                        record off;
                }
        }
}
  • listen 1935: rtmp가 포트 1935의 연결을 들을 것이다. 이게 보통 표준이라고 한다.
  • chuck_size 4096: rtmp가 4kb 블록 사이즈로 데이터를 보낼 거란 얘기. 이것도 디폴트라고 한다.
  • allow publish 127.0.0.1, deny publish all: 같은 서버에서 전송되는 비디오만 받을 거고 다른 사람들이 올리는 걸 막으려는 것이다.
  • application 옆에 live라고 있는 것은, 플러터에서 publish할 때 rtmp://{서버 ip주소}/live 이런식으로 사용된다.
  • live on: 라이브 모드를 허용한다. 여러 사용자가 동시에 볼 수 있게.
  • record off: Nginx-RTMP의 리코딩 기능을 끈다.

나는 어디서든 publish하는 것을 허용해야하기 때문에, 따로 allow publish 127.0.0.1, deny publish all를 적용하지 않았다.

이외에 자세한 설정 사항은 여기 깃허브를 참고하자.

5. 방화벽의 1935 포트를 열어준다.

$ sudo ufw allow 1935/tcp

※ 이때, EC2 서버에 ssh 접속하려면 tcp 22번 포트도 허용해줘야한다! 이때 이걸 생각 못해서 엄청 삽질했던...ㅠㅠ → 참고

$ sudo ufw allow 22/tcp

이렇게 22번도 열어주자.

6. Nginx를 reload해서 바꾼걸 적용되게 한다.

$ sudo systemctl start nginx.service	// 시작
$ sudo systemctl reload nginx.service	// 리로드

이외 참고
https://blog.naver.com/PostView.naver?blogId=bsmouse&logNo=222009701699

profile
Software Developer

0개의 댓글