使用 NGINX 允许从一个域访问

Allow access from one domain with NGINX

我正在寻找一种解决方案来防止与 JWPlayer 的 NGINX 热链接。假设我在 http://mydomain1.com 有一个配置为反向代理的 NGINX 服务器,我会得到 url http://mydomain1.com/file.mp4 放在我在 [=12] 的另一个 VPS 上托管的网站上=].我如何限制该文件,使其只能在 http://mydomain2.com 上播放,而不能在其他任何地方播放?

我尝试了 allow & deny 指令,但后来我意识到这是一个 HTML5 流式传输,因此指令会阻止用户进行流式传输。

在 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";
         }
   }
}

因为 mp4 url 将放在 HTML5 播放器中,这意味着远程地址(用户的机器)将始终直接与反向代理通信。所以除了 nginx secure link 模块之外,不可能使用其他方法来限制访问。有了这个模块,我现在可以根据用户的 ip、到期时间、url 和密码来限制访问。