0

我正在尋找一種解決方案來防止與NGINX for JWPlayer進行熱鏈接。假設我有一臺配置爲http://mydomain1.com的逆向代理的NGINX服務器,我會將網址http://mydomain1.com/file.mp4置於我的網站上,該網站託管在另一個VPS上,網址爲http://mydomain2.com。如何限制文件,以便在http://mydomain2.com上只能播放和無處播放?允許從一個域使用NGINX訪問

我試過allow & deny指令,但後來我意識到這是一個HTML5流,因此指令將阻止流給用戶。

+0

所以你想瀏覽器說mydomain2.com,然後只允許訪問? –

+0

對不起,我沒有說清楚。我希望我從domain1(這是一個反向代理)獲得的鏈接只能在使用html5播放器的domain2(不同主機上的兩個域)上播放。有什麼辦法可以配置NGINX嗎?我也嘗試過valid_referers指令,但它不起作用。 –

+0

如果服務器不同,那麼它將需要更改domain1 nginx而不是domain2。你有權訪問domain1 nginx? –

回答

0

因爲MP4的URL將被放置在一個HTML5播放器,這意味着遠程地址(用戶的機器)總是直接與反向代理通信。因此,使用除nginx安全鏈接模塊之外的其他方法限制訪問是不可能的。有了這個模塊,我現在可以根據用戶的ip,到期時間,url和一個祕密詞來限制訪問。

0

關於mydomain1.com的nginx。確保你有一個額外的塊,它監聽默認主機並拒絕所有流量。然後,在我們添加現有聽塊的規則,只允許www.mydomain2.com

map $http_referer $not_allowed { 
    default 0; 
    "~www.mydomain2.com" 1; 
} 

server { 
    listen 80 default_server; 

    server_name _; 

    deny all; 
} 

server { 
    listen 80; 
    server_name www.mydomain1.com 

    location/{ 
     if ($not_allowed) 
     { 
      return 404 "Not sure its there"; 
     } 
    } 
} 
+0

謝謝,我試過你的配置,但它阻止了用戶訪問mp4文件。我認爲這是由於HTML5播放器的工作原因。他們直接從反向代理以流式傳輸方式將文件與用戶IP的身份進行「流式傳輸」,而不是通過domain2,因此服務器會將其視爲未經授權的訪問。我找到了一個使用Nginx http_secure_link_module的替代方法,試圖實現它。 –

相關問題