第一种、全站防盗链方法
复制代码代码示例:
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ {
valid_referers none blocked www.it.net.cn it.net.cn; if ($invalid_referer) { rewrite ^/ http://www.it.net.cn/403.html; #return 403; } }
第一行:gif|jpg|png|swf|flv
测试配置:
复制代码代码示例:
/usr/local/nginx/sbin/nginx -t
返回以下结果表示正常:
the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
configuration file /usr/local/nginx/conf/nginx.conf test is successful
然后,重启服务器,如果是lnmp的执行如下命令重启lnmp即可:
复制代码代码示例:
/root/lnmp restart
第二种,针对图片目录防止盗链。
复制代码代码示例:
location /images/ {
alias /data/images/; valid_referers none blocked server_names *.it.net.cn it.net.cn; if ($invalid_referer) {return 403;} } 第三种、使用第三方模块ngx_http_accesskey_module实现nginx防盗链 实现方法: 1,下载nginxhttpaccesskeymodule模块文件:nginx-accesskey-2.0.3.tar.gz;
2,解压此文件后,找到nginx-accesskey-2.0.3下的config文件。
3,用以下参数重新编译nginx:
复制代码代码示例:
./configure --add-module=path/to/nginx-accesskey
4. 修改nginx的conf文件,添加几行:
复制代码代码示例:
location /download {
accesskey on; accesskey_hashmethod md5; accesskey_arg "key"; accesskey_signature "mypass$remote_addr"; }
其中:
访问测试脚本download.php:
复制代码代码示例:
<?
$ipkey= md5("mypass".$_server['remote_addr']); $output_add_key="<a href=http://www.it.net.cn/download/g3200507120520lm.rar?key=".$ipkey.">download_add_key</a><br />"; $output_org_url="<a href=http://www.it.net.cn/download/g3200507120520lm.rar>download_org_path</a><br />"; echo $output_add_key; echo $output_org_url; ?> 访问第一个download_add_key链接可以正常下载,第二个链接download_org_path会返回403 forbidden错误。 (责任编辑:IT) |