Created
September 7, 2020 05:03
-
-
Save hkhoshraftar/8ccd0ca813c7da2c6b2a5c85dcc60b88 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
sudo yum -y groupinstall 'Development Tools' | |
sudo yum -y install epel-release | |
sudo yum -y install wget nano unzip | |
sudo yum install -y wget git unzip perl perl-devel perl-ExtUtils-Embed libxslt libxslt-devel libxml2 libxml2-devel gd gd-devel pcre-devel GeoIP GeoIP-devel | |
cd /usr/local/src | |
wget https://nginx.org/download/nginx-1.14.0.tar.gz | |
tar -xzvf nginx-1.14.0.tar.gz | |
wget https://ftp.pcre.org/pub/pcre/pcre-8.42.zip | |
unzip pcre-8.42.zip | |
wget https://www.zlib.net/zlib-1.2.11.tar.gz | |
tar -xzvf zlib-1.2.11.tar.gz | |
wget https://www.openssl.org/source/openssl-1.1.0h.tar.gz | |
tar -xzvf openssl-1.1.0h.tar.gz | |
git clone https://github.com/sergey-dryabzhinsky/nginx-rtmp-module.git | |
rm -f *.tar.gz *.zip | |
ls -lah | |
cd nginx-1.14.0/ | |
./configure --prefix=/etc/nginx \ | |
--sbin-path=/usr/sbin/nginx \ | |
--modules-path=/usr/lib64/nginx/modules \ | |
--conf-path=/etc/nginx/nginx.conf \ | |
--error-log-path=/var/log/nginx/error.log \ | |
--pid-path=/var/run/nginx.pid \ | |
--lock-path=/var/run/nginx.lock \ | |
--user=nginx \ | |
--group=nginx \ | |
--build=CentOS \ | |
--builddir=nginx-1.14.0 \ | |
--with-select_module \ | |
--with-poll_module \ | |
--with-threads \ | |
--with-file-aio \ | |
--with-http_ssl_module \ | |
--with-http_v2_module \ | |
--with-http_realip_module \ | |
--with-http_addition_module \ | |
--with-http_xslt_module=dynamic \ | |
--with-http_image_filter_module=dynamic \ | |
--with-http_geoip_module=dynamic \ | |
--with-http_sub_module \ | |
--with-http_dav_module \ | |
--with-http_flv_module \ | |
--with-http_mp4_module \ | |
--with-http_gunzip_module \ | |
--with-http_gzip_static_module \ | |
--with-http_auth_request_module \ | |
--with-http_random_index_module \ | |
--with-http_secure_link_module \ | |
--with-http_degradation_module \ | |
--with-http_slice_module \ | |
--with-http_stub_status_module \ | |
--http-log-path=/var/log/nginx/access.log \ | |
--http-client-body-temp-path=/var/cache/nginx/client_temp \ | |
--http-proxy-temp-path=/var/cache/nginx/proxy_temp \ | |
--http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp \ | |
--http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp \ | |
--http-scgi-temp-path=/var/cache/nginx/scgi_temp \ | |
--with-mail=dynamic \ | |
--with-mail_ssl_module \ | |
--with-stream=dynamic \ | |
--with-stream_ssl_module \ | |
--with-stream_realip_module \ | |
--with-stream_geoip_module=dynamic \ | |
--with-stream_ssl_preread_module \ | |
--with-compat \ | |
--with-pcre=../pcre-8.42 \ | |
--with-pcre-jit \ | |
--with-zlib=../zlib-1.2.11 \ | |
--with-openssl=../openssl-1.1.0h \ | |
--with-openssl-opt=no-nextprotoneg \ | |
--add-module=../nginx-rtmp-module \ | |
--with-debug | |
sudo make | |
sudo make install | |
sudo ln -s /usr/lib64/nginx/modules /etc/nginx/modules | |
sudo useradd -r -d /var/cache/nginx/ -s /sbin/nologin -U nginx | |
mkdir -p /var/cache/nginx/ | |
chown -R nginx:nginx /var/cache/nginx/ | |
nginx -t | |
nginx -V | |
cd /lib/systemd/system/ | |
cat <<EOF > nginx.service | |
[Unit] | |
Description=nginx - high performance web server | |
Documentation=https://nginx.org/en/docs/ | |
After=network-online.target remote-fs.target nss-lookup.target | |
Wants=network-online.target | |
[Service] | |
Type=forking | |
PIDFile=/var/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 | |
ExecStop=/bin/kill -s TERM $MAINPID | |
[Install] | |
WantedBy=multi-user.target | |
EOF | |
systemctl daemon-reload | |
systemctl start nginx | |
systemctl enable nginx | |
cd /etc/nginx/ | |
cp nginx.conf nginx.conf.asli | |
cat <<EOF > nginx.conf | |
worker_processes auto; | |
events { | |
worker_connections 1024; | |
} | |
# RTMP configuration | |
rtmp { | |
server { | |
listen 1935; # Listen on standard RTMP port | |
chunk_size 4000; | |
application vod { | |
play /mnt/mp4s; | |
} | |
# RTMP stream using OBS | |
application stream { | |
live on; | |
} | |
# Define the Application | |
application show { | |
live on; | |
# Turn on HLS | |
hls on; | |
hls_path /mnt/hls/; | |
hls_fragment 3; | |
hls_playlist_length 60; | |
# disable consuming the stream from nginx as rtmp | |
deny play all; | |
} | |
} | |
} | |
http { | |
sendfile off; | |
tcp_nopush on; | |
aio on; | |
directio 512; | |
default_type application/octet-stream; | |
server { | |
listen 8080; | |
location / { | |
# Disable cache | |
add_header 'Cache-Control' 'no-cache'; | |
# CORS setup | |
add_header 'Access-Control-Allow-Origin' '*' always; | |
add_header 'Access-Control-Expose-Headers' 'Content-Length'; | |
# allow CORS preflight requests | |
if ($request_method = 'OPTIONS') { | |
add_header 'Access-Control-Allow-Origin' '*'; | |
add_header 'Access-Control-Max-Age' 1728000; | |
add_header 'Content-Type' 'text/plain charset=UTF-8'; | |
add_header 'Content-Length' 0; | |
return 204; | |
} | |
types { | |
application/dash+xml mpd; | |
application/vnd.apple.mpegurl m3u8; | |
video/mp2t ts; | |
} | |
root /mnt/; | |
} | |
} | |
} | |
EOF | |
mkdir -p /mnt/hls | |
chown -R nginx:nginx /mnt/hls | |
nginx -t | |
systemctl restart nginx | |
mkdir -p /mnt/mp4s | |
chown -R nginx:nginx /mnt/mp4s | |
nginx -t | |
systemctl restart nginx |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment