ip可以配置nginx防盗链吗?

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

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

《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
最佳答案

可以利用 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;
}
3年前 评论
luyang (楼主) 3年前
php_yt (作者) 3年前
luyang (楼主) 3年前
php_yt (作者) 3年前
luyang (楼主) 3年前
php_yt (作者) 3年前
讨论数量: 12

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

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

可以利用 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;
}
3年前 评论
luyang (楼主) 3年前
php_yt (作者) 3年前
luyang (楼主) 3年前
php_yt (作者) 3年前
luyang (楼主) 3年前
php_yt (作者) 3年前

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