■ 문서 개요
CentOS 7에 nginx 최신 버전과 nginx vod 모듈 구성 방법에 대해 기술
■ 참고 사항
- 80, 443등의 동영상 연결을 위해 방화벽 해제 또는 특정 포트는 열어줘야 함
1. CentOS 7을 최소 설치로 진행합니다.
2. nginx system requirement를 맞춰주기 위해 아래의 명령어를 사용해서 설치를 진행합니다.
yum install -y epel-release git wget gcc gcc-c++ tar gd gd-devel perl-ExtUtils-Embed geoip geoip-devel pcre-devel zlib-devel openssl-devel
3. nginx를 /usr/local/src에 다운로드합니다.
cd /usr/local/src
wget http://nginx.org/download/nginx-1.9.9.tar.gz
4. nginx-vod-module을 다운로드 합니다.
git clone https://github.com/kaltura/nginx-vod-module.git
5. nginx-1.19.9.tar.gz 압축을 풀어줍니다.
tar xvfz nginx-1.9.9.tar.gz
6. nginx 계정생성을 진행합니다.
useradd --system --home /var/lib/nginx --shell /sbin/nologin --comment "nginx system user" nginx
7. 컴파일을 진행합니다.
cd /usr/local/src/nginx-1.9.9
./configure --add-module=../nginx-vod-module \
--sbin-path=/usr/sbin/nginx \
--lock-path=/var/run/nginx.lock \
--conf-path=/etc/nginx/nginx.conf \
--pid-path=/run/nginx.pid \
--with-pcre \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--user=nginx \
--group=nginx \
--with-http_auth_request_module \
--with-http_degradation_module \
--with-http_geoip_module \
--with-http_gunzip_module \
--with-http_gzip_static_module \
--with-http_image_filter_module \
--with-http_perl_module \
--with-http_realip_module \
--with-http_secure_link_module \
--with-http_slice_module \
--with-http_ssl_module \
--with-http_stub_status_module \
--with-http_v2_module \
--with-stream_ssl_module \
--with-stream \
--with-threads \
--with-http_mp4_module \
--with-file-aio \
--with-cc-opt="-O3" \
--prefix=/etc/nginx
make
make install
nginx -V
8. 권한을 변경합니다.
9. /etc/nginx/nginx.conf 설정을 변경합니다.
vi /etc/nginx/nginx.conf
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 80;
server_name localhost;
location / {
root html;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
# vod settings
vod_mode local;
vod_fallback_upstream_location /fallback;
vod_last_modified 'Sun, 19 Nov 2000 08:52:00 GMT';
vod_last_modified_types *;
vod_align_segments_to_key_frames on;
vod_manifest_segment_durations_mode accurate;
vod_segment_duration 1000;
vod_hls_index_file_name_prefix playlist;
# vod caches
vod_metadata_cache metadata_cache 512m;
vod_response_cache response_cache 128m;
# gzip mainfests
gzip on;
gzip_types application/vnd.apple.mpegurl;
# file handle caching / aio
open_file_cache max=1000 inactive=5m;
open_file_cache_valid 2m;
open_file_cache_min_uses 1;
open_file_cache_errors on;
aio on;
location /contents {
root /home/hls;
vod hls;
add_header Access-Control-Allow-Headers '*';
add_header Access-Control-Expose-Headers 'Server,range,Content-Length,Content-Range';
add_header Access-Control-Allow-Methods 'GET, HEAD, OPTIONS';
add_header Access-Control-Allow-Origin '*';
expires 100d;
}
location /vod_status {
vod_status;
access_log off;
}
}
}
10. /lib/systemd/system/nginx.service를 등록합니다.
vi /lib/systemd/system/nginx.service
[Unit]
Description=nginx - high performance web server
Documentation=https://nginx.org/en/docs/
After=network.target remote-fs.target nss-lookup.target
Wants=network-online.target
[Service]
Type=forking
PIDFile=/run/nginx.pid
ExecStartPre=/usr/bin/rm -f /run/nginx.pid
ExecStartPre=/usr/sbin/nginx -t -c /etc/nginx/nginx.conf
ExecStart=/usr/sbin/nginx -c /etc/nginx/nginx.conf
ExecReload=/bin/kill -s HUP $MAINPID
KillSignal=SIGQUIT
TimeoutStopSec=5
KillMode=process
PrivateTmp=true
[Install]
WantedBy=multi-user.target
11. 서비스를 실행합니다.
systemctl daemon-reload
systemctl start nginx
11-1. journalctl -xe를 사용하여 오류를 확인합니다.
vi /usr/local/lib64/perl5/nginx.pm
11-2. XSLoader::load('nginx', $VERSION);를 주석 처리합니다.
#XSLoader::load('nginx', $VERSION);
systemctl start nginx
systemctl enable nginx
12. 컨텐츠 디렉토리를 생성합니다.
mkdir /home/hls/contents -p
13. nginx를 재시작합니다.
systemctl restart nginx
14. 컨텐츠를 업로드합니다.
15. 테스트 PC에서 VLC Player를 설치합니다.
https://get.videolan.org/vlc/3.0.16/win64/vlc-3.0.16-win64.exe
16. VLC로 네트워크 스트림을 열어 내용을 확인합니다.
http://IP(xxx.xxx.xxx.xxx)/contents/영상파일명.mp4/playlist.m3u8
tail -f /var/log/nginx
17. Web에 포팅 될 HLS Player는 아래의 링크들 중에 골라서 진행할 수 있습니다.
http://www.mediaelementjs.com/
GitHub - bharadwajpro/m3u8-player: M3U8 Player in browser. Play any live stream m3u8 link with this website at https://bharadwajpro.github.io/m3u8-player
The Most Powerful & Flexible Video Platform | JW Player
Flowplayer: The Performance First Online Video Platform
'etc' 카테고리의 다른 글
[Office 2021] 설치 파일 생성 가이드 (1) | 2021.11.19 |
---|---|
[Windows 11] 시작 화면에 맞춤 기능 끄기 (0) | 2021.07.24 |
[Windows 11] 필요한 작업 표시줄 아이콘 선별하기 (0) | 2021.07.23 |
[Windows 11] Windows 11 Outlook 데스크탑 알림 표시 (0) | 2021.07.17 |
[Windows 11 + Teams] 이모지 이용하기 (0) | 2021.07.16 |
댓글