NGINX open () thất bại (20: Không phải là thư mục) hls vod với mô-đun liên kết an toàn


14

Tôi có một vấn đề với nginx config cho hls streaming. Tôi sử dụng mô-đun kaltura nginx vod và cố gắng thêm ngx_http_secure_link_moduleđể bảo vệ luồng. Điều kỳ lạ là tôi có lỗi 404 nếu tôi bật ngx_http_secure_link_module(nhật ký bên dưới). Tôi nghĩ rằng đó là vì nó không thể tìm thấy một tệp có index.m3u8 ở cuối, nhưng nếu tôi nhận xét khối liên kết an toàn thì nó hoạt động tốt.

Ngoài ra tôi đã cố gắng thêm bí danh trong location ~ \.m3u8$ {}khối, nhưng nó không hoạt động. Tôi đang làm gì sai? Làm thế nào để bảo vệ luồng của tôi?

Liên kết luồng của tôi: https://stream.example.com/hls/c14de868-3130-426a-a0cc-7ff6590e9a1f/index.m3u8?md5=0eNJ3SpBd87NGFF6Hw_zMQ&expires=1609448340

Cấu hình NGINX của tôi:

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; }
    }
  }
}

Nhật ký NGINX:

cmdlog

Câu trả lời:


1

Chỉ cần chuyển khối này vào thư mục máy chủ và thêm vào vod hls;bên trong.

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

  if ($secure_link = "") { return 403; }
  if ($secure_link = "0") { return 403; }
}
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.