徒然245+

あれこれ戯れ言を…

*

[備忘録] カゴヤvpsで動画配信サーバーを構築 vol.2 nginx編

      2017/11/16


前回の記事にて、おおよその初期設定は終了していますので、nginxが使えるようにします。
以下はすべて「sudo -s」コマンドにてroot権限での作業です。

nginxのインストール

動画配信を行うため、nginxにはrtmpモジュールも組み込みます。
そのため、nginをビルドします。

ビルドに必要なツール類のインストール

  • pcre, pcre-devel を入れておく。
    yum -y install pcre pcre-devel
  • zlibのダウンロード
    cd /usr/local/src
    wget http://zlib.net/zlib-1.2.11.tar.gz
    tar zxvf zlib-1.2.11.tar.gz
  • openssl のダウンロード
    cd /usr/local/src
    wget https://www.openssl.org/source/openssl-1.0.2l.tar.gz
    tar zxvf openssl-1.0.2l.tar.gz

nginxのビルド&インストール

  • nginx+nginx-rtmp-moduleのビルド
    cd /usr/local/src
    wget http://nginx.org/download/nginx-1.12.2.tar.gz
    tar zxvf nginx-1.12.2.tar.gz
    cd nginx-1.12.2
    git clone --depth 1 https://github.com/arut/nginx-rtmp-module.git
    ./configure \
        --prefix=/usr/local/nginx \
        --user=nginx \
        --group=nginx \
        --pid-path=/usr/local/nginx/var/nginx.pid \
        --lock-path=/usr/local/nginx/run/nginx.lock \
        --error-log-path=/usr/local/nginx/log/error.log \
        --http-log-path=/usr/local/nginx/log/access.log \
        --with-openssl=/usr/local/src/openssl-1.0.2l \
        --with-zlib=/usr/local/src/zlib-1.2.11 \
        --with-http_ssl_module \
        --with-http_realip_module \
        --without-http_ssi_module \
        --add-module=nginx-rtmp-module
    make
    make install

nginxの設定

  • 設定ファイル編集
    vim /usr/local/nginx/conf/nginx.conf
    1. httpセクションに
      server_tokens off; (バージョン情報隠蔽)

      を追加。

    2. http.server.location / セクションを
      root   /var/www;
      index index.html index.htm index.php;

      のように変更し、ドキュメントのルートを変更する。

    3. ついでに、ルートフォルダをつくっておく
      mkdir /var/www
      chmod 775 /var/www
      chown nginx /var/www
    4. http.serverセクションに
      # faviconが存在しない旨のログを出力しないようにする
      location /favicon {
          empty_gif;
          access_log    off;
          log_not_found off;
      }

      を追加。

    5. 末尾に
      rtmp_auto_push on;
      rtmp {
          server {
              listen 1935;
              access_log log/rtmp_access.log;
              chunk_size 4096;
              timeout 10s;
              # ライブ配信設定
              application live {
                  live on;
      
                  # 192.168.1.0/24からのみライブ配信データの受信を許可
                  allow publish 192.168.1.0/24;
                  deny publish all;
      
                  # HLS配信設定
                  hls on;
                  hls_path /usr/local/nginx/html/live; # HLS(HTTP Live Streaming)ファイル作成先
                  hls_fragment 10s; # HLS(HTTP Live Streaming)ファイル分割時間
              }
              # オンデマンド配信設定
              application vod {
                  play /usr/local/nginx/html/vod; # 動画ファイル格納先
              }
          }
      }

      を追加。

  • ファイアーウォールの設定
    iptables -A INPUT -p tcp --dport 80 -j ACCEPT
    iptables -A OUTPUT -p tcp --dport 80 -j ACCEPT
    iptables -A INPUT -p tcp --sport 80 -j ACCEPT
    iptables -A OUTPUT -p tcp --sport 80 -j ACCEPT
  • 設定の保存と再起動
    iptables-save > /etc/sysconfig/iptables
    systemctl restart iptables
  • nginx起動スクリプト作成
    vim /usr/lib/systemd/system/nginx.service
    [Unit]
    Description=nginx - high performance web server
    Documentation=http://nginx.org/en/docs/
    After=network.target remote-fs.target nss-lookup.target
    [Service]
    Type=forking
    ExecStartPre=/usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf
    ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
    ExecReload=/bin/kill -s HUP $MAINPID
    ExecStop=/bin/kill -s TERM $MAINPID
    PrivateTmp=true
    [Install]
    WantedBy=multi-user.target
  • nginxユーザー作成
    useradd --no-create-home nginx

nginx起動

  • nginx起動
    systemctl start nginx
  • 自動起動の設定
    systemctl enable nginx

nginx動作確認

  • WEBブラウザからインスタンスのipを入力
    下記画面がでれば、無事に動いている
    nginx起動画面

今回はここまで…

次回は、メールサーバーのインストールです。

 -