ฉันมีปัญหากับการตั้งค่า nginx สำหรับการสตรีม hls ฉันใช้โมดูล kaltura nginx vodและพยายามเพิ่มngx_http_secure_link_module
เพื่อปกป้องสตรีม สิ่งที่แปลกคือฉันมีข้อผิดพลาด 404 ถ้าฉันเปิดใช้งานngx_http_secure_link_module
(บันทึกด้านล่าง) ฉันคิดว่าเป็นเพราะไม่สามารถหาไฟล์ที่มี index.m3u8 ในตอนท้าย แต่ถ้าฉันแสดงความคิดเห็นบล็อกการเชื่อมโยงที่ปลอดภัยมันทำงานได้ดี
ฉันพยายามเพิ่มนามแฝงในlocation ~ \.m3u8$ {}
บล็อก แต่มันไม่ได้ผล ผมทำอะไรผิดหรือเปล่า? วิธีการป้องกันกระแสของฉัน
ลิงก์สตรีมของฉัน: https://stream.example.com/hls/c14de868-3130-426a-a0cc-7ff6590e9a1f/index.m3u8?md5=0eNJ3SpBd87NGFF6Hw_zMQ&expires=1609448340
การกำหนดค่า NGINX ของฉัน:
server {
listen 9000;
server_name localhost;
# root /srv/static;
location ^~ /hls/ {
# the path to c14de868-3130-426a-a0cc-7ff6590e9a1f file
alias /srv/static/videos/1/;
# file with cors settings
include cors.conf;
vod hls;
# 1. Set secret variable
set $secret "s3cr3t";
# 2. Set secure link
secure_link $arg_md5,$arg_expires;
secure_link_md5 "$secure_link_expires $secret";
# if I comment this block everything works fine (but security)
location ~ \.m3u8$ {
if ($secure_link = "") { return 403; }
if ($secure_link = "0") { return 403; }
}
}
}
บันทึก NGINX: