前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >nginx配置文件防盗链

nginx配置文件防盗链

作者头像
meteoric
发布2018-11-14 11:44:09
7980
发布2018-11-14 11:44:09
举报
文章被收录于专栏:游戏杂谈游戏杂谈

一般网站为了防止资源被外部链接所盗用,都会使用防盗链来进行处理。思路就是判断请求的域名 如下一个相对完全的示例:

代码语言:javascript
复制
#VHOST: x.abc.com
server {
	listen       80;
	server_name  x.abc.com;
	charset utf-8;
	access_log off;

	location / {
		return 404;
	}

	location /themes/ {
		alias   C:/abc/abc_Web/themes/;

		valid_referers none blocked server_names abc.com *.abc.com *.abc.net;
		if ($invalid_referer) {
			return 403;
		}

		if ($document_uri ~ "^/themes/(default|img\/(icon|upload))/.*") {			
			break;
		}

		if ($document_uri ~ "^/themes/js/(app|widgets)/.*"){			
			break;
		}		
	}

	location /game/ {
		alias   C:/abc/abc_Web/game/;

		valid_referers none blocked server_names abc.com *.abc.com *.abc.net;
		if ($invalid_referer) {
			return 403;
		}
	}

	location /images/ {
		alias   C:/abc/abc_Web/images/;
	}
}

这段代码的意思是:

listen       80;  监听的端口为80

server_name  x.abc.com; 服务器名称为x.abc.com

charset utf-8; 字符集编码为utf-8

access_log off;  不记录访问log日志

location / {         return 404;     }

不允许直接访问根目录

http://x.abc.com/themes/ 将访问指向本地 C:/abc/abc_Web/themes/;

valid_referers none blocked server_names abc.com *.abc.com *.abc.net;

上面这段就是重点,valid_referers none 阻止referers,排除referers为abc.com *.abc.com *.abc.net的域名

然后就是验证了:$invalid_referer

if ($invalid_referer) {             return 403;         }

满足条件则返回403

可以使得正则匹配指定的资源,如.gif或.jpg、.swf、.mp3结尾的资源,还有就是判断其host..

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2010-09-03 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档