大家在查看分析网站访问日志的时候,很可能发现自己网站里面的很多图片被外部网站引用,这样给我们自己的博客带来了最少两点的不好:(1)、如果别的网站引用我们网站图片的次数非常多的话,会给咱们网站服务器带来很大的负载压力;(2)、被其他网站引用图片会消耗我们网站的流量,如果我们的网站服务器对流量有限制的话,这样对我们网站影响很大.
针对这几点问题,我将在本文介绍如果通过nginx服务器来限制其他网站对我们网站图片的引用.
nginx服务器中的ngx_http_referer_module模块允许拦截"Referer"请求头中含有非法值的请求,阻止它们访问站点.
我们只需要在网站的配置文件里面加入以下的配置即可:location~\.
(gif|jpg|png|bmp)${valid_referersnoneblockedwww.
iteblog.
comserver_names~\.
google\.
~\.
baidu\.
if($invalid_referer){return403;}}上面valid_referers的语法如下:语法:valid_referersnone|blocked|server_names|string.
.
.
;默认值:—上下文:server,location"Referer"请求头为指定值时,内嵌变量$invalid_referer被设置为空字符串,否则这个变量会被置成"1".
查找匹配时不区分大小写.
该指令的参数可以为下面的内容:none缺少"Referer"请求头;blocked"Referer"请求头存在,但是它的值被防火墙或者代理服务器删除;这些值都不以"http://"或者"https://"字符串作为开头;server_names"Referer"请求头包含某个虚拟主机名;string定义一个服务器名和可选的URI前缀.
服务器名允许在开头或结尾使用"*"符号.
当nginx检查时,"Referer"请求头里的服务器端口将被忽略.
正则表达式必须以"~"符号作为开头.
1/2需要注意的是表达式会从"http://"或者"https://"之后的文本开始匹配.
通过上面的配置,只要访问我们网站图片的Referer不是来自www.
iteblog.
com、Google、null或者百度等请求全部被nginx返回403错误,也就是无法访问.
需要注意的是用户伪造一个有效的"Referer"请求头是相当容易的,因此这个模块的预期目的不在于彻底地阻止这些非法请求,而是为了阻止由正常浏览器发出的大规模此类请求.
还有一点需要注意,即使正常浏览器发送的合法请求,也可能没有"Referer"请求头.
ftlcloud(超云)目前正在搞暑假促销,美国圣何塞数据中心的云服务器低至9元/月,系统盘与数据盘分离,支持Windows和Linux,免费防御CC攻击,自带10Gbps的DDoS防御。FTL-超云服务器的主要特色:稳定、安全、弹性、高性能的云端计算服务,快速部署,并且可根据业务需要扩展计算能力,按需付费,节约成本,提高资源的有效利用率。活动地址:https://www.ftlcloud.com...
RAKsmart商家一直以来在独立服务器、站群服务器和G口和10G口大端口流量服务器上下功夫比较大,但是在VPS主机业务上仅仅是顺带,尤其是我们看到大部分主流商家都做云服务器,而RAKsmart商家终于开始做云服务器,这次试探性的新增美国硅谷机房一个方案。月付7.59美元起,支持自定义配置,KVM虚拟化,美国硅谷机房,VPC网络/经典网络,大陆优化/精品网线路,支持Linux或者Windows操作...
gcorelabs怎么样?gcorelabs是创建于2011年的俄罗斯一家IDC服务商,Gcorelabs提供优质的托管服务和VPS主机服务,Gcorelabs有一支强大的技术队伍,对主机的性能和稳定性要求非常高。Gcorelabs在 2017年收购了SkyparkCDN并提供全球CDN服务,目标是进入全球前五的网络服务商。G-Core Labs总部位于卢森堡,在莫斯科,明斯克和彼尔姆设有办事处。...