Nginx的防盗链配置
有个客户的站点负载过高,于是我们可爱的愤青系统工程师将其的Apache换成Nginx,效果很明显。现在记录一些Apache转换过程中的小细节,留下备忘。
Nginx的防盗链
一般的防盗链如下:
location ~* \.(gif|jpg|png|swf|flv)$ {
valid_referers none blocked www.ccvita.com www.phpq.net;
if ($invalid_referer) {
rewrite ^/ http://www.ccvita.com/403.html;
#return 404;
}
}
第一行:gif|jpg|png|swf|flv
表示对gif、jpg、png、swf、flv后缀的文件实行防盗链
第二行:www.ccvita.com www.phpq.net
表示对www.ccvita.com www.phpq.net这2个来路进行判断
if{}里面内容的意思是,如果来路不是指定来路就跳转到错误页面,当然直接返回404也是可以的。
NginxHttpAccessKeyModule实现防盗链
如果不怕麻烦,有条件实现的话,推荐使用NginxHttpAccessKeyModule这个东西。
他的运行方式是:如我的download 目录下有一个 file.zip 的文件。对应的URI 是http://www.ccvita.com/download/file.zip
使用ngx_http_accesskey_module 模块后http://www.ccvita.com/download/file.zip?key=09093abeac094. 只有给定的key值正确了,才能够下载download目录下的file.zip。而且 key 值是根据用户的IP有关的,这样就可以避免被盗链了。
据说NginxHttpAccessKeyModule现在连迅雷都可以防了,可以尝试一下。
相关文档:
《Nginx下Discuz!的Rewrite》:http://www.ccvita.com/348.html
《Nginx下WordPress的Rewrite》:http://www.ccvita.com/336.html
《Nginx的Rewrite配置》:http://www.ccvita.com/319.html
《Nginx的防盗链配置》:http://www.ccvita.com/312.html
非常感谢
Nginx就是俄国人做的那个服务器?
貌似腾讯的网页部分就是用这个的服务器啊。
@Francis: 只看到腾讯用apache 还没发现有Nginx
我打算搞一台服务器,你能不能帮助安装一下或者帮助做个这样的系统?
我发广告, 任何人不得删除!! 违者斩首
针对中小型网站的服务器架构(nginx)http://www.hao32.com/webserver/43.html
正需要这个哈哈哈
判断来路这个太不靠谱了吧,随便个下载软件都能伪造啊
文章下边的相关文档,四个链接错了三个。。。
相关文档:
《Nginx下Discuz!的Rewrite》:http://www.ccvita.com/319.html
《Nginx下WordPress的Rewrite》:http://www.ccvita.com/319.html
《Nginx的Rewrite配置》:http://www.ccvita.com/319.html
《Nginx的防盗链配置》:http://www.ccvita.com/319.html
@xkx, 感谢提醒,已经修正
NginxHttpAccessKeyModule
配置后,如果下载地址的key是跟客户端的IP有关,那我如何生成文件的下载地址给所有用户(因为要下载这个文件的用户IP地址是未知的啊?)
或者说,用了这个防盗链功能后,只能给特定的用户(已知客户端IP地址)提供下载文件的服务? 望帮忙解答,谢谢。我的邮箱已附上
回复留言
水水语录
树上的鸟蛋被你偷了一个吧
最新日志
分类列表
文章归档
关键词
Apache 媳妇 配置 感慨 PHP技术 MySQL Memcache 优化 PHP类 css PHP 迪拜 陈陈 调优 Linux 生活 MySQL优化 FireFox Discuz! Nginx 缓存 性能 Rewrite MooPHP框架 JavaScript WordPress插件 WordPress MySQL效率 风骚 生日 奇矩互动 负载 视频 blog程序 IE6 分析 yy 高负载 ZIP IE7 服务器 正则表达式 常用 防盗链 Cookie