使用 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 和密码来限制访问。
我正在寻找一种解决方案来防止与 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 和密码来限制访问。