本ページは広告が含まれています。気になる広告をクリック頂けますと、サーバ運営費になります(^^
WebARENAの安いクラウド
349円/月額のLinuxサーバを配信基盤にして映像配信サービスを稼働させます。
nginx安定板をダウンロード
root@cloud01:/home/ubuntu# wget https://nginx.org/download/nginx-1.18.0.tar.gz --2020-10-30 16:49:24-- https://nginx.org/download/nginx-1.18.0.tar.gz Resolving nginx.org (nginx.org)... 3.125.197.172, 52.58.199.22, 2a05:d014:edb:5704::6, ... Connecting to nginx.org (nginx.org)|3.125.197.172|:443... connected. HTTP request sent, awaiting response... 200 OK Length: 1039530 (1015K) [application/octet-stream] Saving to: ‘nginx-1.18.0.tar.gz’ nginx-1.18.0.tar.gz 100%[===================================================>] 1015K 777KB/s in 1.3s 2020-10-30 16:49:27 (777 KB/s) - ‘nginx-1.18.0.tar.gz’ saved [1039530/1039530]
root@cloud01:/home/ubuntu# tar xzvf nginx-1.18.0.tar.gz
gitを取得
root@cloud01:/home/ubuntu# apt-get install git Reading package lists... Done Building dependency tree Reading state information... Done git is already the newest version (1:2.17.1-1ubuntu0.7). The following packages were automatically installed and are no longer required: grub-pc-bin libpython-stdlib libpython2.7-minimal libpython2.7-stdlib python python-argcomplete python-ipaddr python-minimal python2.7 python2.7-minimal Use 'apt autoremove' to remove them. 0 upgraded, 0 newly installed, 0 to remove and 7 not upgraded.
nginx-rtmp-moduleを取得
git clone https://github.com/arut/nginx-rtmp-module.git
コンパイル準備
apt-get install libpcre3-dev zlib1g-dev openssl libssl-dev make gcc
configureとmake
root@cloud01:/home/ubuntu# cd nginx-1.18.0 root@cloud01:/home/ubuntu/nginx-1.18.0#./configure --sbin-path=/usr/sbin/nginx --conf-path=/etc/nginx/nginx.conf --add-module=../nginx-rtmp-module --with-debug --prefix=/usr/local/nginx --with-http_secure_link_module --user=www-data --group=www-data root@cloud01:/home/ubuntu/nginx-1.18.0#make root@cloud01:/home/ubuntu/nginx-1.18.0#make install
PHPのインストール
apt-get install php php-cgi php-cli php-fpm
エンコード受付用パスワード
cd /usr/local/nginx/html/ mkdir publishauth cd publishauth/ cat auth.php // www.server.com/auth.php?user=felix&pass=felixpassword //check if querystrings exist or not if(empty($_GET['user']) || empty($_GET['pass'])) { //no querystrings or wrong syntax echo "File not found."; header('HTTP/1.0 404 Not Found'); exit(1); } else { //querystring exist $username = $_GET['user']; $password = $_GET['pass']; } $savedpassword = livepass; $saveduser = liveuser; //check pass and user string if (strcmp($password,$savedpassword)==0 && strcmp($username,$saveduser)==0 ) { echo "Password and Username OK! "; } else { echo "password or username wrong! "; header('HTTP/1.0 404 Not Found'); //kein stream } ?>
nginx.confの設定
grep -v '^\s*#' /etc/nginx/nginx.conf |grep -v '^\s*$' 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; } location ~ \.php$ { fastcgi_pass unix:/var/run/php/php7.0-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } } } rtmp { server { listen 1935; notify_method get; buflen 5s; drop_idle_publisher 5s; publish_notify on; wait_key on; wait_video on; sync 10ms; application translate { live on; on_publish http://localhost/publishauth/auth.php; #LANからの映像配信しか受け付けない allow publish 192.168.0.0/16; deny publish all; } } }
apacheが動いているんで削除
root@webarena01:/home/ubuntu# apt-get remove --purge apache2 Reading package lists... Done Building dependency tree Reading state information... Done The following packages were automatically installed and are no longer required: apache2-data apache2-utils grub-pc-bin libpython-stdlib libpython2.7-minimal libpython2.7-stdlib python python-argcomplete python-ipaddr python-minimal python2.7 python2.7-minimal Use 'apt autoremove' to remove them. The following packages will be REMOVED: apache2* 0 upgraded, 0 newly installed, 1 to remove and 7 not upgraded. After this operation, 536 kB disk space will be freed. Do you want to continue? [Y/n]
nginxとPHPの起動確認
root@Cloudn01:/etc/nginx# /usr/sbin/nginx root@Cloudn01:/etc/nginx# netstat -an |grep :80 tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN root@Cloudn01:/etc/nginx# netstat -an |grep :1935 tcp 0 0 0.0.0.0:1935 0.0.0.0:* LISTEN root@Cloudn01:/etc/nginx# ps aux |egrep 'www-data' www-data 397 0.0 0.7 44744 3820 ? S 17:04 0:00 nginx: worker process www-data 398 0.0 0.7 44480 3940 ? S 17:04 0:00 nginx: cache manager process root 413 0.0 0.2 14428 1080 pts/0 S+ 17:04 0:00 grep -E --color=auto www-data www-data 9985 0.0 0.5 439996 2476 ? S Oct16 0:00 php-fpm: pool www www-data 9986 0.0 0.4 439996 2132 ? S Oct16 0:00 php-fpm: pool www
phpinfo.phpを置いてみる
vi /usr/local/nginx/html/phpinfo.php <?php phpinfo(); ?>

ダッシュボードの設置
root@webarena01:/usr/local/nginx/html# cp /home/ubuntu/nginx-rtmp-module/stat.xsl .
ダッシュボードへのアクセス
http://server
nginxの自動起動
### BEGIN INIT INFO # Provides: nginx # Required-Start: $local_fs $remote_fs $network $syslog $named # Required-Stop: $local_fs $remote_fs $network $syslog $named # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: starts the nginx web server # Description: starts nginx using start-stop-daemon ### END INIT INFO PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin DAEMON=/usr/sbin/nginx NAME=nginx DESC=nginx test_nginx_config() { if $DAEMON -t $DAEMON_OPTS >/dev/null 2>&1; then return 0 else $DAEMON -t $DAEMON_OPTS return $? fi } start() { test_nginx_config # Check if the ULIMIT is set in /etc/default/nginx if [ -n "$ULIMIT" ]; then # Set the ulimits ulimit $ULIMIT fi start-stop-daemon --start --quiet --pidfile /var/run/$NAME.pid \ --retry 5 --exec $DAEMON -- $DAEMON_OPTS || true } stop() { start-stop-daemon --stop --quiet --pidfile /var/run/$NAME.pid \ --retry 5 --exec $DAEMON || true } case "$1" in start) echo -n "Starting $DESC: " start echo "$NAME." ;; stop) echo -n "Stopping $DESC: " stop echo "$NAME." ;; restart|force-reload) echo -n "Restarting $DESC: " stop sleep 1 echo "$NAME." start ;; reload) echo -n "Reloading $DESC configuration: " test_nginx_config start-stop-daemon --stop --signal HUP --quiet --pidfile /var/run/$NAME.pid \ --exec $DAEMON || true echo "$NAME." ;; configtest|testconfig) echo -n "Testing $DESC configuration: " if test_nginx_config; then echo "$NAME." else exit $? fi ;; status) status_of_proc -p /var/run/$NAME.pid "$DAEMON" nginx && exit 0 || exit $? ;; *) echo "Usage: $NAME {start|stop|restart|reload|force-reload|status|configtest}" >&2 exit 1 ;; esac
実行権限を与える
root@webarena01:/usr/local/nginx/html# chmod 755 /etc/init.d/nginx
登録して、rc2.dに反映されているか確認する
root@webarena01:/usr/local/nginx/html# update-rc.d nginx defaults root@webarena01:/usr/local/nginx/html# ls /etc/rc2.d/ S01acpid S01console-setup.sh S01grub-common S01lvm2-lvmpolld S01mdadm S01open-vm-tools S01postgresql S01ssh S01uuidd S01apport S01cron S01irqbalance S01lxcfs S01nginx S01php7.2-fpm S01rsync S01sysstat S01vpnserver S01atd S01dbus S01lvm2-lvmetad S01lxd S01ntp S01plymouth S01rsyslog S01unattended-upgrades
エンコードしてみる
rtmp://サーバIP/live/streamkey?user= felix&pass= felixpassword
OBSでの設定はこんな感じになります
サーバIP 192.168.200.50
配信ポイント live
ストリーム名 translate
ユーザ名 liveuser
パスワード livepass

配信用パスワードつける
root@webarena01:/usr/local/nginx/passwd# htpasswd -c .htpasswd hanako New password: Re-type new password: Adding password for user hanako