[nginx] 보안 링크 모듈이있는 NGINX open () 실패 (20 : 디렉토리 아님)

hls 스트리밍을위한 nginx 구성에 문제가 있습니다. 내가 사용 kaltura의 nginx VOD 모듈 을 추가하려고 ngx_http_secure_link_module스트림을 보호하기 위해. 이상한 점은 활성화하면 ngx_http_secure_link_module(아래 로그) 404 오류가 발생한다는 것입니다 . 끝에 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



답변

이 블록을 서버 디렉토리로 옮기고 vod hls;내부에 추가했습니다 .

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

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


답변