2015-10-27 2 views
0

У меня есть 2 места в nginx.conf я хочу, чтобы предоставить доступ с .ts расширением, только если вы получили доступ через .m3u8 в противном случае он возвращает 403.набор в месте, и если в другом месте

Так в основном http://xxx/hello.m3u8 Will предоставить вам доступ для воспроизведения списка .ts внутри. Но пытаться получить доступ к кускам, как в http://xxx/hello-123.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; 
} 
+0

Этот код не будет работать, потому что у вас есть два отдельных запроса. Один для файла 'm3u8' и второй для файла' ts', и они полностью не связаны для сервера. –

+0

@AlexeyTen, я понимаю, что вы говорите, и в факте, что вы правы, но все же я прошу о том, как работать с результатом в качестве моего запроса, я мог бы полностью изменить код, но я хочу получить результат , Благодарю. –

ответ

0

Вы не можете блокировать доступ к .ts сегментов, если вы хотите, чтобы иметь возможность воспроизводить их. Если вы ищете какую-то форму DRM, вы можете использовать аутентификацию на токенах в сочетании с сегментным шифрованием с помощью вращающегося ключа, обслуживаемого через HTTPS. Это затруднит запись вашего контента.

Реализация модуля аутентификации в Nginx довольно проста. См. Учебник и пример проекта здесь: Nginx Auth Token Module.