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 cookie và Chính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.