Я транслирую в прямом эфире, используя clappr с источником www.domain.com/hls/mystream.m3u8?md5=XXXXXXXX&expiry=1345950505
Я хочу защитить свой источник потока.поэтому я решил использовать защищенную ссылку nginx-rtmp.
я сделал часть карты для защиты файлов m3u8 и ts.он может прочитать m3u8, но для файла ts продолжайте давать мне код ошибки 403.я уже пробовал минимум медведя хэширования секретного ключа истечения срока действия + '' +.но потоковое вещание все еще нельзя наблюдать.
кто-нибудь может указать, где моя ошибка?
Я пытался следовать этому руководству https://www.nginx.com/blog/securing-urls-secure-link-module-nginx-plus/#secure_link
worker_processes auto;
error_log logs/rtmp_error.log debug;
pid logs/nginx.pid;
events {
worker_connections 1024;
}
http {
map $uri $filename {
default none;
"~*/hls/(?<name>.*).m3u8" $name;
"~*/hls/(?<name>.*).ts" $name;
}
server {
listen 80;
server_name localhost;
location /hls {
root /tmp;
secure_link $arg_md5,$arg_expires;
secure_link_md5 "$arg_expires secretkey";
if ($secure_link = "") { return 403; }
if ($secure_link = "0") { return 410; }
# Serve HLS fragments
# CORS setup
add_header 'Access-Control-Allow-Origin' '*' always;
add_header 'Access-Control-Expose-Headers' 'Content-Length';
# allow CORS preflight requests
if ($request_method = 'OPTIONS') {
add_header 'Access-Control-Allow-Origin' '*';
add_header 'Access-Control-Max-Age' 1728000;
add_header 'Content-Type' 'text/plain charset=UTF-8';
add_header 'Content-Length' 0;
return 204;
}
types {
application/vnd.apple.mpegurl m3u8;
video/mp2t ts;
}
add_header Cache-Control no-cache;
}
}
}
rtmp_auto_push on;
rtmp_auto_push_reconnect 1s;
rtmp {
server {
listen 1935;
chunk_size 4096;
notify_method get;
application hls {
live on;
interleave on;
wait_key on;
meta copy;
hls on;
hls_fragment 2;
hls_playlist_length 4s;
hls_path /tmp/hls;
record off;
}
}
}