Nginx 只允许我的域访问视频 url

标签 nginx video ffmpeg html5-video http-live-streaming

我正在设置一个 Web 服务器,其中包含嵌入到 html5 视频标签中的实时视频流。我的工作流程是从网络摄像机中获取 rtsp 视频,使用 ffmpeg 将其解码为 HLS 格式,然后将视频发送到我的服务器。
Nginx 允许通过 url 访问视频,我将其作为来源放入我的视频标签中。

一切正常,唯一的问题是任何人都可以在未经我许可的情况下访问视频的 URL 并将该 URL 放在他们的网站上。

有没有办法只允许我的域访问,并阻止例如 www.domain2.com 将其放入他们使用的视频标签或其他框架中?我认为 Nginx 也许可以完成这项工作。

这是 Nginx 的代码和我的 html 以防万一。

HTML:

<video id="player" class="video-js vjs-default-skin vjs-big-play-centered vjs-fluid"  controls preload="none">
<source src="//mydomain.com/live/stream.m3u8" type="application/x-mpegURL" />

Nginx:
location /live {
            types {
                    application/vnd.apple.mpegurl m3u8;
            }
            limit_conn addr 5;
            alias /home/stream;
            add_header Cache-Control no-cache;
            add_header 'Access-Control-Allow-Origin' '*';
    }

非常感谢你们!

最佳答案

如果你有一个固定的 IP,你可以在 nginx block 中使用允许和拒绝命令,你可以在这里查看如何使用它 http://etapien.com/guides/nginx-allow-access-certain-ips/

location /live {
    types {
        application/vnd.apple.mpegurl m3u8;
    }
    # .. some config

    allow 192.168.1.0/24; #your company subaddress
    allow 10.1.1.0/16;  #your company IP
    deny all;
}

关于Nginx 只允许我的域访问视频 url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57776501/

相关文章:

nginx - 使用Kuberenetes入口 Controller 作为集群中其他服务的反向代理

php - 为什么即使升级服务器后,我的网站仍会时不时地显示错误 502?

c++ - 如何将元数据附加到视频的每一帧

c# - WinForms c# 应用程序中的 Youtube 视频 : Listing playlists and controlling a video

nginx - HLS 文件夹未在 NGINX-RTMP 中创建

ffmpeg - 如何使用 ffmpeg 和 h264_videotoolbox 标志提高输出视频质量?

ubuntu - Nginx 作为虚拟主机和反向代理

python - 文件在 Django/Nginx 中无法正确下载

php - 从以顺序名称存储的目录中检索图像并存储在数组中

碎片化 MP4 中的 FFmpeg 内存泄漏