larrylin 发表于 2012-1-15 14:47:24

防盜鏈一直無法成功

老大,我爬了很多防盜鏈文章也試了卻沒效果
我把下面代碼貼到 /usr/local/nginx/conf/vhost/player.XXX.org.conf

以下是我貼完之後的結果可是我直接訪問 player.XXX.org/player.swf確沒有防盜鏈
server
      {
                listen       80;
                server_name player.xxxxx.org;
                index index.html index.htm index.php default.html default.htm default.php;
                root/home/wwwroot/player;

                include none.conf;
                location ~ .*\.(php|php5)?$
                        {
                              fastcgi_passunix:/tmp/php-cgi.sock;
                              fastcgi_index index.php;
                              include fcgi.conf;
                        }

                location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
                        {
                              expires      30d;
                        }

                location ~ .*\.(js|css)?$
                        {
                              expires      12h;
                        }


location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
                        {
                              valid_referers none blocked *.vpser.net;
#故意不修改直接訪問測試

                              if ($invalid_referer) {
                              rewrite ^/ http://linode.vpser.net/404.jp;
                              #return 404;
                              }
}
                access_log off;
      }


大大求救了!!!

[ 本帖最后由 larrylin 于 2012-1-15 15:03 编辑 ]

licess 发表于 2012-1-15 19:01:20

重启nginx生效

larrylin 发表于 2012-1-15 19:02:19

有重啟過了還是無法生效耶怎麼辦?

larrylin 发表于 2012-1-15 19:03:49

我lnmp重啟會出現這個錯誤


Starting php_fpm Failed loading /usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/eaccelerator.so:/usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/eaccelerator.so: cannot open shared object file: No such file or directory
Failed loading /usr/local/ioncube/ioncube_loader_lin_5.3.so:/usr/local/ioncube/ioncube_loader_lin_5.3.so: undefined symbol: gc_remove_zval_from_buffer
done


那要怎麼修正呢大大

licess 发表于 2012-1-15 20:10:53

回复 4# 的帖子

没有错误信息就不好说了
php是那个版本?

larrylin 发表于 2012-1-15 20:17:23

錯誤訊息要去哪提取給你看呢?

防盜鏈跟這個錯誤有關西嗎?

licess 发表于 2012-1-15 20:40:17

前面的报错信息与防盗链没任何关系

貌似直接访问是不受nginx反盗链限制的。

larrylin 发表于 2012-1-15 20:52:04

Stoping LNMP...
Nginx program is stop
Shutting down php_fpm . done
PHP-FPM program is stop
Shutting down MySQL. SUCCESS!
MySQL program is stop
Starting LNMP...
Nginx start successfully!
Starting php_fpm Failed loading /usr/local/ioncube/ioncube_loader_lin_5.3.so:/usr/local/ioncube/ioncube_loader_lin_5.3.so: undefined symbol: gc_remove_zval_from_buffer
done
PHP-FPM start successfully!
Starting MySQL. SUCCESS!
MySQL start successfully!


重起就會出現 php_fpm.........

那段的錯是要怎麼修正??

licess 发表于 2012-1-16 09:14:50

回复 8# 的帖子

你可能是php 5.2.17,但是装了php 5.3的ioncube loader

larrylin 发表于 2012-1-16 19:46:22

那我現在要怎麼處理?

那個防盜鍊不能防盜php嗎?

不想給別的網域用iframe連我的php
我有什麼辦法可以防盜呢?

larrylin 发表于 2012-1-31 15:03:58

那個防盜鍊不能防盜php嗎?

不想給別的網域用iframe連我的php
我有什麼辦法可以防盜呢?

hamen 发表于 2012-1-31 17:07:29

难道没人告诉你

location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$

不能有两段这个代码出现吗,你的防盗链规则要放在已有的上面这段代码里面,才能有效,不能出现两段一样的 location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$

hong0 发表于 2012-6-6 13:17:11

1.确定要修改的文件
如果你安装lnmp后,没有新建站点,而是使用默认站点,那你需要修改的文件是 /usr/local/nginx/conf/nginx.conf

如果你新建了站点,那么要修改的文件是 /usr/local/nginx/conf/vhost/ 这个文件夹下面的相应文件,通常应该是 你的域名.conf

2.根据你的情况,下载或者打开相应的.conf文件,注意先备份
找到下面内容
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
                        {
                              expires      30d;
                        }把它修改为类似下面的样子
                location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
                        {
                              valid_referers none blocked *.vpser.com vpser.com;
                              if ($invalid_referer) {
                                        rewrite ^/ http://othervpser.com/404.jpg;
                                        #return 404;
                                        }
                              expires      30d;
                        }
特别说明:
以上都不是真正防盗链,但是在其他网站调用的本站图片都已经作了防护了,如果用户通过浏览器直接输入图片地址或下载地址,仍然会显示图片,仍可下载文件,因为 valid_referers 里多了“none blocked”。
最后说下ngingx下如何彻底地实现真正意义上的防盗链,那就是把“none blocked”去掉,这样浏览器直接输入就不会显示图片了(别忘了改成自己的域名)

你要修改的地方
gif|jpg|jpeg|....,这些是你想要屏蔽的文件类型,可以根据情况修改

vpser.com *.vpser.com,修改为你网站的域名,或者是你允许显示你网站图片的其他网站域名,注意中间用空格分开,而不是逗号


http://othervpser.com/404.jpg 这个图片显示给盗链者看到的图片,注意不要放到vpser.com上,因为防盗链的作用,那样对方是看不到的,可以上传到一些支持外联的网络相册上。

最后别忘了测试重启nginx。
测试nginx.conf正确性:
/usr/local/nginx/sbin/nginx -t
如果正确应该显示如下信息:
the configuration file /opt/nginx/conf/nginx.conf syntax is ok
configuration file /opt/nginx/conf/nginx.conf test is successful
平滑重启nginx
/etc/init.d/nginx reload

[ 本帖最后由 hong0 于 2012-6-6 13:30 编辑 ]
页: [1]
查看完整版本: 防盜鏈一直無法成功