NGINX open () ล้มเหลว (20: ไม่ใช่ไดเรกทอรี) hls vod พร้อมโมดูลลิงก์ที่ปลอดภัย


14

ฉันมีปัญหากับการตั้งค่า 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:

cmdlogs

คำตอบ:


1

เพิ่งย้ายบล็อกนี้ไปยังไดเรกทอรีเซิร์ฟเวอร์และเพิ่มvod hls;เข้าไปข้างใน

location ~ \.m3u8$ {
  include cors.conf;
  vod hls;

  if ($secure_link = "") { return 403; }
  if ($secure_link = "0") { return 403; }
}
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.