Linux下Nginx防盗链设置

修改Nginx网站的配置

  1. 首先找到nginx.conf文件,找到文件中的server{} 虚拟机配置

  2. 在server虚拟机配置内添加如下代码

    location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|mp4)$ {
         root /www/html/;
         expires 24h;
         access_log off;
         valid_referers none blocked *.abc.com 192.168.1.55; 
         if ($invalid_referer) {
             return 403; 
         }
     } 
    
  3. 解析

    • \.(gif|jpg|jpeg|png|bmp|swf|mp4) 这是启用防盗链的文件扩展名

    • root /www/html/; 文件转发目录

    • expires 24h; 在客户浏览器缓存24小时,如果是天,可以用expires 30d;

    • access_log off; 不写入日志文件中

    • valid_referers none blocked *.abc.com 192.168.1.55; 允许访问的域名站点或IP,如果多个地址用空格隔开,支持域名泛解析

    • if ($invalid_referer) { return 403; }

      除了允许直接访问的域名外,其他域名直接返回403,也可以直接返回一个指定的网址rewrite ^/ http://abc.com/ima/a.jpg;

  4. 遗留问题

    如上配置,有一图片地址为http://a.abc.com/a.jpg,如果有一有def.com网站解析到abc.com时无法防问,但是,如果直接引用http://a.abc.com/a.jpg是可以访问的

你可能感兴趣的:(Linux下Nginx防盗链设置)