NGINX open () gagal (20: Bukan direktori) hls vod dengan modul tautan aman

14

Saya punya masalah dengan nginx config untuk streaming hls. Saya menggunakan modul kaltura nginx vod dan mencoba menambahkan ngx_http_secure_link_moduleuntuk melindungi aliran. Yang aneh adalah saya memiliki kesalahan 404 jika saya aktifkan ngx_http_secure_link_module(log di bawah). Saya pikir itu karena tidak dapat menemukan file dengan index.m3u8 di bagian akhir, tetapi jika saya berkomentar blok tautan aman berfungsi dengan baik.

Saya juga mencoba menambahkan alias di dalam location ~ \.m3u8$ {}blokir, tetapi tidak berhasil. Apa yang saya lakukan salah? Bagaimana cara melindungi aliran saya?

Tautan streaming saya: https://stream.example.com/hls/c14de868-3130-426a-a0cc-7ff6590e9a1f/index.m3u8?md5=0eNJ3SpBd87NGFF6Hw_zMQ&expires=1609448340

Konfigurasi NGINX saya:

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 log:

cmdlog

Klimbo
sumber

Jawaban:

1

Baru saja memindahkan blok ini ke direktori server dan menambahkan vod hls;di dalamnya.

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

  if ($secure_link = "") { return 403; }
  if ($secure_link = "0") { return 403; }
}
Klimbo
sumber