Nginx 在位置中设置,如果在其他位置

Nginx 在位置中设置,如果在其他位置,nginx,http-live-streaming,Nginx,Http Live Streaming,我在nginx.conf中有两个位置,只有通过.m3u8进行访问时,我才希望通过.ts扩展名进行访问,否则它将返回403 所以基本上你可以使用里面的.ts列表。 但是像在中那样试图单独访问块是行不通的。 在一段时间内访问缓存也可以。 这是我到目前为止的代码,如果您能提供帮助,我们将不胜感激 location ~ \.m3u8 { root /mnt/hls; add_header Cache-Control no-cache; set $access 1; } locat

我在nginx.conf中有两个位置,只有通过.m3u8进行访问时,我才希望通过.ts扩展名进行访问,否则它将返回403

所以基本上你可以使用里面的.ts列表。 但是像在中那样试图单独访问块是行不通的。 在一段时间内访问缓存也可以。 这是我到目前为止的代码,如果您能提供帮助,我们将不胜感激

location ~ \.m3u8 {
    root /mnt/hls;
    add_header Cache-Control no-cache;
    set $access 1;
}
location ~ \.ts {
    if ($access = "") {
        return 403;
    }
    root /mnt/hls;
    add_header Cache-Control no-cache;
}

如果希望能够播放.ts段,则无法阻止对这些段的访问。如果您正在寻找某种形式的DRM,您可以使用基于令牌的身份验证,再加上通过HTTPS提供旋转密钥的段加密。这将使录制内容变得更加困难,但并非不可能


在Nginx中实现身份验证模块非常简单。请参见此处的教程和示例项目:。

此代码将无法工作,因为您有两个单独的请求。一个用于m3u8文件,另一个用于ts文件,它们与服务器完全无关。@AlexeyTen,我理解你的意思,事实上你是对的,但我再次询问如何按照我的要求处理结果,我可以完全更改代码,但我想要结果。谢谢