web-dev-qa-db-fra.com

Échec de NGINX open () (20: Pas un répertoire) hls vod avec module de liaison sécurisée

J'ai un problème avec la configuration nginx pour le streaming hls. J'utilise module vod kaltura nginx et j'essaye d'ajouter ngx_http_secure_link_module pour protéger le flux. Ce qui est étrange, c'est que j'ai une erreur 404 si j'active ngx_http_secure_link_module (journaux ci-dessous). Je pense que c'est parce qu'il ne peut pas trouver un fichier avec index.m3u8 à la fin, mais si je commente le bloc de lien sécurisé, cela fonctionne bien.

J'ai aussi essayé d'ajouter un alias à l'intérieur de location ~ \.m3u8$ {} bloquer, mais cela n'a pas fonctionné. Qu'est-ce que je fais mal? Comment protéger mon flux?

Mon lien de flux: https://stream.example.com/hls/c14de868-3130-426a-a0cc-7ff6590e9a1f/index.m3u8?md5=0eNJ3SpBd87NGFF6Hw_zMQ&expires=1609448340

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

Journaux NGINX:

cmdlogs

14
Klimbo

Je viens de déplacer ce bloc vers le répertoire du serveur et d'ajouter vod hls; à l'intérieur.

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

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