我试图阻止我的mp4的热链接与nginx" valid_referers" :
valid_referers none blocked mysite.com;
if ($invalid_referer) {
return 403;
}
但它根本不起作用,mp4仍然显示在窃取视频的网站上,如果我放置一些随机域而不是" mysite.com"视频仍在运作。
如果它可以提供帮助,这就是我的服务器配置文件的样子:
server {
listen 80;
server_name dl.mysite.com;
root /home/videos;
index index.php index.html;
autoindex off;
location ~ /\. {
deny all;
}
# serve static files directly
location ~* \.(jpg|jpeg|gif|css|png|js|ico|html)$ {
access_log off;
expires max;
}
# streaming
location ~ \.mp4$ {
valid_referers none blocked mysite.com;
if ($invalid_referer) {
return 403;
}
gzip off;
gzip_static off;
mp4;
mp4_buffer_size 1M;
mp4_max_buffer_size 300M;
}
location ~ .flv$ {
flv;
}
# removes trailing slashes
if (!-d $request_filename)
{
rewrite ^/(.+)/$ /$1 permanent;
}
# canonicalize codeigniter url end points
if ($request_uri ~* ^(/lobby(/index)?|/index(.php)?)/?$)
{
rewrite ^(.*)$ / permanent;
}
# removes trailing "index" from all controllers
if ($request_uri ~* index/?$)
{
rewrite ^/(.*)/index/?$ /$1 permanent;
}
# unless the request is for a valid file (image, js, css, etc.), send to bootstrap
if (!-e $request_filename)
{
rewrite ^/(.*)$ /index.php?/$1 last;
break;
}
# catch all
error_page 404 /index.php;
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_read_timeout 600;
include fastcgi_params;
}
}
我做错了什么?
答案 0 :(得分:0)
过去我遇到过同样的问题。我认为它不起作用,但实际上,它正在工作。只要确保你不允许除你以外的任何人。
有时候,leechers尝试使用null或者空引用来绕过这个并且没有可能的解决方法。我可以建议一种可能的解决方案来阻止资源目录。见https://www.atulhost.com/hotlink-protection-nginx这个人以简单的方式解释了一切。