ip可以配置nginx防盗链吗?

      location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
        {
            valid_referers  xx.xx.xx.xx;
            if ($invalid_referer) {
                return 403;
            }
            expires 30d;
        }

配置完重启之后直接访问显示403没问题,但是后台访问图片也是403?

《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
最佳答案

可以利用 geo 模块
tengine.taobao.org/nginx_docs/cn/d...
示例:
geo 的上下文是 http

http {
 #根据ip赋值给$white
  geo $white {
    default  1;
    27.189.204.0/24 0; #白名单
  }
  server {
  ...
  location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
    {
      #如果$white==1就不能访问
      if ($white){
        return 302  /www/default.jpg;#返回默认图片
       }
        expires      30d;
        ..
    }
  }
}

当然你还可以用 map 指令

map $http_host $h {
    hostnames;
    default       1;
    *.mysite.com  0;
}
if ($h){
        return 302 /www/1.png;
}
2年前 评论
luyang (楼主) 2年前
php_yt (作者) 2年前
luyang (楼主) 2年前
php_yt (作者) 2年前
luyang (楼主) 2年前
php_yt (作者) 2年前
讨论数量: 12

valid_referers是白名单,确定下是否配置正确

2年前 评论
luyang (楼主) 2年前
PwordC (作者) 2年前
PwordC (作者) 2年前
luyang (楼主) 2年前

可以利用 geo 模块
tengine.taobao.org/nginx_docs/cn/d...
示例:
geo 的上下文是 http

http {
 #根据ip赋值给$white
  geo $white {
    default  1;
    27.189.204.0/24 0; #白名单
  }
  server {
  ...
  location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
    {
      #如果$white==1就不能访问
      if ($white){
        return 302  /www/default.jpg;#返回默认图片
       }
        expires      30d;
        ..
    }
  }
}

当然你还可以用 map 指令

map $http_host $h {
    hostnames;
    default       1;
    *.mysite.com  0;
}
if ($h){
        return 302 /www/1.png;
}
2年前 评论
luyang (楼主) 2年前
php_yt (作者) 2年前
luyang (楼主) 2年前
php_yt (作者) 2年前
luyang (楼主) 2年前
php_yt (作者) 2年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!