티스토리 뷰
1. Nginx 컴파일 설치를 하기 위한 모듈 및 도구들 다운로드
sudo yum install pcre pcre-devel openssl openssl-devel zlib zlib-devel -y
sudo yum groupinstall "Development Tools" -y
※뒤에 -y는 y 누를 필요없이 자동 설치 되는 것임.
2. Nginx 컴파일 설치를 하기 위한 임시 폴더 생성
mkdir ~/nginx-rtmp
cd ~/nginx-rtmp
※~/ 는 '홈 디렉터리(/home/사용자아이디)'임.
3. 임시 생성한 폴더에 Nginx와 nginx-rtmp-module을 다운받고 압축을 푼다.
wget https://nginx.org/download/nginx-1.14.0.tar.gz
wget https://github.com/arut/nginx-rtmp-module/archive/master.zip
tar -zxvf nginx-1.14.0.tar.gz
unzip master.zip
4. Nginx와 nginx-rtmp-module 컴파일 설치
cd nginx-1.14.0
sudo ./configure --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --conf-path=/etc/nginx/nginx.conf --pid-path=/var/run/nginx.pid --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --with-http_ssl_module --add-module=../nginx-rtmp-module-master --user=nginx --group=nginx
sudo make
sudo make install
※컴파일 설치 설명
나는 aws에서 제공하는 Nginx 자동설치와 설정을 같기 하기 위해 configure를 커스텀 하여 설치하였다.
configure 설명을 하겠다.
1. ./configure : 컴파일 설치를 하기 위한 설정
2. --prefix='경로' : nginx가 설치될 때 모든 것의 기본적인 정보가 저장되는 경로
3. --sbin-path='경로' : nginx의 실행파일이 설치되는 경로
4. --conf-path='경로' : nginx의 설정 파일(nginx.conf)이 저장되는 경로
5. --pid-path='경로' : nginx의 프로세스 ID값이 있는 파일의 경로
6. --error, --http-log : nginx의 로그 파일이 저장되는 경로
7. --with--http_ssl_module 등.. : 기본적으로 nginx설치 파일에 들어있으나 설치되지 않는 모듈들.. 그러나 내가 with로 설정할 때 설치할 수 있는 모듈들
8. --add-module='경로' : 서드파티의 모듈(라이브러리, Nginx-rtmp 모듈 등)을 설치할 수 있는 명령어(☆★가장 중요★☆)
9. --user=nginx --group=nginx: nginx사용자의 권한으로 Nginx를 실행 함. conf에서 바꿀 수 있음.
**추가 정보들
1. Nginx 컴파일 설치 소개: 1. 공식 홈, 2. 생활코딩
5. Nginx 사용자 등록 및 Nginx 실행
sudo ps aux | grep nginx
커맨드를 입력하면, 사용자(워커 프로세스)가 nginx가 등록되지 않았다. --color=auto nginx 만 존재한다. 따라서, 사용자를 등록하자.
사용자 등록
sudo useradd --shell /sbin/nologin nginx
Nginx 실행
sudo /usr/sbin/nginx
sudo ps aux | grep nginx 로 nginx가 worker process로 등록 된 것을 확인한다.
이후, 자신의 aws ip를 입력하여 Welcome to nginx! 가 뜬 것을 확인한다.
6. Nginx 서비스 등록 (선택사항, 안 해도 무관)
sudo vi /etc/init.d/nginx 로 vi창을 띄우고
다음 파일을 받고, 복사 후에 붙여 넣고 저장을 한다.(vi 편집기에서는 맨 윗줄이 복사가 안 될지도 모르니 확인 하세요.)
저장 했으면, 서비스 실행파일 권한 설정(644->744)
sudo chmod +x /etc/init.d/nginx
서비스 재시작은 아직 하지 않는다.
7. 향후, 서버에서 트랜스코딩을 위한 FFmpeg 컴파일 설치(선택사항)
cd /usr/local/bin
sudo mkdir ffmpeg
cd ffmpeg
sudo wget https://johnvansickle.com/ffmpeg/releases/ffmpeg-release-64bit-static.tar.xz
sudo tar -xvf ffmpeg-release-64bit-static.tar.xz
sudo ln -s /usr/local/bin/ffmpeg/ffmpeg /usr/bin/ffmpeg
(ln은 link 명령어임. 하드 링크와 심볼릭 링크가 있음.
ln -s 심볼릭 링크로서, 윈도우의 바로가기와 같다.)
cd /usr/local/bin/ffmpeg/
sudo mv ffmpeg-4.0-64bit-static/* .
ffmpeg 쳐서 정보 나오는지 확인한다.
8. Nginx 기본설정 변경
sudo vi /etc/nginx/nginx.conf
vi 창에서,
#user nobody;
-> user nginx;(주석 제거하고, nginx로 바꿈)
events {
worker_connections 1024;
}
밑에다가,
rtmp {
server {
listen 1935;
chunk_size 4096;
application live {
live on;
record off;
}
}
}
입력 후, 저장.
※ 여기 rtmp { } 필드가 스트리밍의 주요 부분임.
여러가지 옵션들을 사용할 수 있음. 지금은 걸음마 단계이다.
ffmpeg를 설정하여 원활하게 스트리밍을 보여줄 수 있고,
rtmp뿐만 아니라 dash, hls로 송출 변경할 수 있고, 청크크기의 조절과 fragment duration을 설정할 수 있다.
rtmp의 설정 부분의 매뉴얼은 Nginx-rtmp-module 개발자 Git 페이지에 있다.
9. Nginx 서비스 재실행
※ 6번에서 Nginx 서비스를 만들었다면
-> sudo service nginx restart
※ Nginx 서비스를 만들지 않았다면
-> sudo /usr/local/nginx/sbin/nginx -s stop
-> sudo /usr/local/nginx/sbin/nginx
여기까지 했다면 OBS STUDIO(PC) 또는 안드로이드 어플리케이션을 이용하여 스트리밍이 되는지 확인해보자.
이제 이 인스턴스에 PHP와 Postgresql을 설치하고 연동 해보도록 하자.
**PHP와 Postgresql의 자동설치는 되었는데 최종적으로 연동이 되지 않았다.
아예 PHP와 Postgresql을 컴파일 설치해야겠다. 우선은 미루어 두겠다.
따라서, 나는 미디어서버와 종합 웹서버 2개를 사용하여 어플리케이션을 만들도록 하겠다.
여러번의 삽질 끝에 드디어 연동이 되었다.
'개발일지 > AWS 서버 구축' 카테고리의 다른 글
Redis(Server)와 연동하기 위해 AWS linux AMI에 PhpRedis(Client) 설치 (0) | 2018.05.25 |
---|---|
AWS Linux AMI에 Redis(Server) 설치하기. (0) | 2018.05.25 |
AWS 서버에 Nginx-rtmp-module이 설치된 웹서버에 PHP와 Postgresql 설치하고 연동하기. (0) | 2018.05.24 |
Phpstorm과 AWS의 원격조종(Remote Control) 및 Postgresql과 연동하기. (0) | 2018.05.11 |
Amazon Linux AMI 에서 Nginx 1.12.1, Php7.1, Postgresql 9.6 자동 설치하여 연동하기 (1) | 2018.05.05 |