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; 
           }
       } 
  1. 解析

    • \.(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;

  2. 遗留问题

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

0%