Nginx mp4热链接保护不起作用

时间:2016-07-28 22:52:34

标签: nginx

我试图阻止我的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;
        }

}

我做错了什么?

1 个答案:

答案 0 :(得分:0)

过去我遇到过同样的问题。我认为它不起作用,但实际上,它正在工作。只要确保你不允许除你以外的任何人。

有时候,leechers尝试使用null或者空引用来绕过这个并且没有可能的解决方法。我可以建议一种可能的解决方案来阻止资源目录。见https://www.atulhost.com/hotlink-protection-nginx这个人以简单的方式解释了一切。