防盗链 NGINX 设置,结果本地主机网站的图片一起也不显示了 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
zzlettle
V2EX    Linux

防盗链 NGINX 设置,结果本地主机网站的图片一起也不显示了

  •  
  •   zzlettle 2014-08-13 00:04:31 +08:00 6428 次点击
    这是一个创建于 4113 天前的主题,其中的信息可能已经有所发展或是发生改变。
    我用nginx设置的防盗链,命令也是看的其他地方的教程,感觉很简单。
    location ~.*\.(gif|jpg|png)$ {
    valid_referers none blocked www.mywebsite.com mywebsite.com ;
    }
    设置好了以后,确实不盗链了,但我直接打开域名,我网站里面的背景图片什么的也不显示了。然后我直接把里面的删除,就留下一个空的{}
    location ~.*\.(gif|jpg|png)$ {

    }
    这样应该没有针对图片有任何限制,结果我打开网站没有任何变化,仍然是不显示背景图片,感觉好像valid_referers 就没起到任何作用样。我看LOG,显示的是对应的图片文件png jpg是404错误,但其他的比如CSS JS什么的都能正常打开。不知道我这里到底哪里错了。
    17 条回复    2020-03-12 17:56:50 +08:00
    cchange
        1
    cchange  
       2014-08-13 00:27:12 +08:00
    友情帮顶

    如果是刚改好 别忘了按Ctrl+F5刷新,可以强制从服务器上重新下载内容
    zzlettle
        2
    zzlettle  
    OP
       2014-08-13 00:30:55 +08:00
    应该不是浏览器的问题,是没有接到到文件,NGINX哪里设置的问题,因为我看到LOG里面对于图片都是访问不到的错误记录。
    niseter
        3
    niseter  
       2014-08-13 00:35:11 +08:00   1
    我的亲哪。。

    location ~.*\.(gif|jpg|png)$ {
    valid_referers none blocked www.mywebsite.com mywebsite.com ;
    }

    你这样Nginx哪里找源文件啊亲,

    你原来location / 下面的(或者你没有用location,直接root [file location]的)

    是root [file location]的话,还是要再写一遍
    是proxy_pass [url] 的话,也还是要再写一遍
    jackton
        4
    jackton  
       2014-08-13 01:02:20 +08:00
    来看看,肯定配置文件有问题啦
    faceair
        5
    faceair  
       2014-08-13 01:03:30 +08:00 via Android
    重启nginx了么
    zzlettle
        6
    zzlettle  
    OP
       2014-08-13 01:08:34 +08:00
    @niseter 我刚才修改为这样的,我用的是root
    location ~.*\.gif|jpg|png)$ {
    valid_referers none blocked www.mywebsite.com mywebsite.com ;
    root /myproject/app:
    }
    这样是能把所有的图片都显示出来了,但没有防盗链。图片依然能在其他的页面被连接显示出来。感觉好像valid_referers就根本没有在判断referer
    zzlettle
        7
    zzlettle  
    OP
       2014-08-13 01:09:09 +08:00
    @faceair 每次修改后,肯定重启啦
    zzlettle
        8
    zzlettle  
    OP
       2014-08-13 01:17:31 +08:00
    我其实没有修改什么配置,就是添加了3个location ,"/","/static/","media/",然后再加上这个处理图片防盗链的,排列顺序是先是 /static/ ,/media/ ,防盗链的,"/"
    我也试过,直接在图片目录下面用valid_referers none blocked www.mywebsite.com mywebsite.com ;,但根本没有变化,我感觉这句防盗链的命令没有做出访问的判断。我用的是最新的版本1.7.4nginx
    aru
        9
    aru  
       2014-08-13 10:05:54 +08:00
    还缺了配置

    if ($invalid_referer) {
    return 403;
    }
    niseter
        10
    niseter  
       2014-08-13 10:35:15 +08:00
    @niseter 请参照@aru的做法。
    vaild_referer只是标记了谁是合法的referer来源,并不能对非法的来源怎么样。
    ryd994
        11
    ryd994  
       2014-08-13 16:25:21 +08:00
    root 应该写在server段里啊,没有特殊需要的话
    zzlettle
        12
    zzlettle  
    OP
       2014-08-13 23:25:51 +08:00
    @ryd994 正解。我找到问题了,就是应该把root写在 最开始server里面,希望跟我一样的人,有同样的问题的时候能看到这贴吧。
    anyforever
        13
    anyforever  
       2014-08-14 12:44:58 +08:00   1
    不知道你怎么写的配置。请参考: http://ipple.net/lanmp/nginx-set-image-blocked.html
    zzlettle
        14
    zzlettle  
    OP
       2014-08-16 13:03:12 +08:00
    @anyforever 谢谢,我已经知道原因了。因为我在配置的server最开始里面没有写root,我只在防盗链的那个{}写了规则,所以出问题了,应该在server最开始就应该写清楚这个域名的root,这样后面写防盗链的规则就不会出问题了。
    ryd994
        15
    ryd994  
       2014-08-17 01:48:12 +08:00
    @zzlettle 你应该再多看点英文的官方文档,比如: http://wiki.nginx.org/Pitfalls
    ryd994
        16
    ryd994  
       2014-08-17 01:49:24 +08:00
    @zzlettle 基本逻辑是,尽量在外层写,你可以查阅官方文档,知道某个命令可以使用的区块。
    tyx1703
        17
    tyx1703  
       2020-03-12 17:56:50 +08:00
    @niseter 时隔 2038 天,掉在了同样的坑里。感谢!
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     953 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 21ms UTC 23:27 PVG 07:27 LAX 15:27 JFK 18:27
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86