nginx-rtmp on_publishで呼び出すurlにhttps接続を使用する

nginx-rtmpのon_publishで認証やrtmpの転送を行ってみました。
nginx-rtmp 動画配信にパスワード認証を設定する(on_publish)
nginx-rtmpで動画の転送先を動的に変更する(on_publish)

urlにhttpsで始まるものを指定したい。
例として、https://example.com/on_publishを指定してみます。


設定ファイルの変更



設定ファイルを編集します。

$ sudo vi /etc/nginx/nginx.conf



on_publishに「https://example.com/on_publish」を指定

rtmp {
    server {
        listen 1935;
        chunk_size 4096;
        access_log /var/log/rtmp_access.log;

        application live {
            live on;
            record off;
            on_publish https://example.com/on_publish;
            notify_method post;
        }
    }
}




設定ファイルのチェックを行うとエラーになります。


$ sudo nginx -t
nginx: [emerg] invalid port in url "https://example.com/on_publish" in /etc/nginx/nginx.conf:95
nginx: configuration file /etc/nginx/nginx.conf test failed



「http://example.com:443/on_publish」という指定にすれば動くかなと思ったのですが、まあそんなわけないですよね。


調べてみると、どうやらsslには対応していないようです。
on_publish url does not support https callback it ?




proxy_pass



参考サイトではnginx_luaを使用しての解決法が提示されていますが、もう少しお手軽に対応したい。
pxory_passでの動作を試してみます。


設定ファイルを編集

$ sudo vi /etc/nginx/sites-available/default



http://localhost/の通信をhttps://example.com/に転送するよう変更します。

server {
...(略)
    location / {
        proxy_pass https://example.com/;
    }
...(略)
}




nginx-rtmpの設定ファイルを編集

$ sudo vi /etc/nginx/nginx.conf



on_publishに「http://localhost/on_publish」を指定

rtmp {
    server {
        listen 1935;
        chunk_size 4096;
        access_log /var/log/rtmp_access.log;

        application live {
            live on;
            record off;
            on_publish http://localhost/on_publish;
            notify_method post;
        }
    }
}




設定を反映


$ sudo service nginx reload




これで動画配信時にhttps://example.com/on_publishを呼び出し、認証などが行えるようになりました。


【参考URL】
on_publish url does not support https callback it ?


関連記事

コメント

プロフィール

Author:symfo
blog形式だと探しにくいので、まとめサイト作成中です。
https://symfo.web.fc2.com/

PR

検索フォーム

月別アーカイブ