允许使用NGINX从一个域进行访问

允许使用NGINX从一个域进行访问,nginx,html5-video,jwplayer,nginx-location,nginx-reverse-proxy,Nginx,Html5 Video,Jwplayer,Nginx Location,Nginx Reverse Proxy,我正在寻找一个解决方案,以防止与JWPlayer的NGINX热链接。假设我有一个NGINX服务器,在http://mydomain1.com,我将获取urlhttp://mydomain1.com/file.mp4 把我的网站放在另一个VPS上http://mydomain2.com. 如何限制该文件以便在其上播放http://mydomain2.com 只有,没有别的地方 我尝试了allow&deny指令,但后来我意识到这是一个HTML5流媒体,因此这些指令将阻止向用户发送流。在mydomai

我正在寻找一个解决方案,以防止与JWPlayer的NGINX热链接。假设我有一个NGINX服务器,在http://mydomain1.com,我将获取urlhttp://mydomain1.com/file.mp4 把我的网站放在另一个VPS上http://mydomain2.com. 如何限制该文件以便在其上播放http://mydomain2.com 只有,没有别的地方


我尝试了allow&deny指令,但后来我意识到这是一个HTML5流媒体,因此这些指令将阻止向用户发送流。

在mydomain1.com的nginx上。确保有一个额外的块侦听默认主机并拒绝所有流量。然后在现有的listen块中,我们添加了一条规则,只允许www.mydomain2.com


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

所以你想让浏览器显示mydomain2.com,然后只允许访问?对不起,我没说清楚。我希望我从domain1获得的链接是一个反向代理,只能在domain2上使用html5播放器在不同主机上的两个域上播放。有没有办法为此配置NGINX?我还尝试了有效的\u referers指令,但它不起作用。如果服务器不同,则需要在domain1 nginx而不是domain2上进行更改。您有权访问domain1 nginx?是的,我有权访问这两台服务器,也有权访问运行在nginx上的两台服务器。谢谢,我尝试了您的配置,但是它阻止了用户访问mp4文件。我认为这是由于HTML5播放器的工作方式。他们直接从反向代理中以用户IP的身份传输文件,而不是通过domain2,因此服务器将其视为未经授权的访问。我找到了一个使用Nginx http_secure_link_模块的替代方案,并尝试实现它。
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";
         }
   }
}