nginx配置文件防盗链

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

#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..

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏西安-晁州

使用connect-multiparty限制nodejs图片上传

connect-multiparty中间件,可用于获取文件上传时各种参数,比如文件大小、格式等,具体使用: var multipart = require('c...

25900
来自专栏王小雷

React Natvie在Mac os上安装并创建项目

详细记录React-Native 0.47版本在Mac OS 上安装过程并初始化项目。 ? 1. 安装RN环境 1.1 安装brew /usr/bin/ruby...

24260
来自专栏Golang语言社区

Golang语言--反射的用处--代码自动生成

背景: go语言处理db、json的时候,具体代码的变量定义和db字段、json输出的时候可能不一样。 这个时候,我们需要用tag的方式来进行定义。 例如: ?...

45460
来自专栏运维技术迷

SQL复习之删除数据库

本次记录删除数据库的两种方法,第一种为直接删除;第二种为先查询再删除。 删除数据库,语句如下: use master--指向当前操作的数据库 go --第一种...

37260
来自专栏无原型不设计

【Mockplus教程】分组

为了更好的管理和组织多个页面,可以选择将页面分组。 选择多个页面,然后使用右键点击后,在弹出的菜单中选择“将页面归类到新分组”。 完整演示如下: ?

30270
来自专栏Albert陈凯

Hadoop数据分析平台实战——100HBase和MapReduce整合离线数据分析平台实战——100HBase和MapReduce整合

离线数据分析平台实战——100HBase和MapReduce整合 环境搭建 搭建步骤: 在etc/hadoop目录中创建hbase-site.xml的软连接。在...

301100
来自专栏机器学习实践二三事

pip安装报错'not a supported wheel on this platform'

这个错误很常见,解决方法是改名,首先要获得在你的机器的平台上的合法名称: import pip pip.pep425tags.get_supporte...

32770
来自专栏电光石火

CentOS 安装 Maven

 1、官网找到最新版的安装包: http://maven.apache.org/download.cgi 拷贝文件名为 *-bin.tar.gz 的链接地址 ...

24860
来自专栏月牙寂

k8s源码分析-----kube-proxy(2)ProxyServer

第一时间获取文章,可以关注本人公众号 月牙寂道长 yueyajidaozhang

38640
来自专栏无原型不设计

【Mockplus教程】为什么删除多个页面的时候会有提示,如何取消提示?

为了防止误操作,在删除三个及以上页面的时候,Mockplus默认会给出输入“delete”字符 完成删除的确认提示,如下图: ? 要去掉这个提示,在设置中...

28160

扫码关注云+社区

领取腾讯云代金券