大家在查看分析网站访问日志的时候,很可能发现自己网站里面的很多图片被外部网站引用,这样给我们自己的博客带来了最少两点的不好:(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"请求头.
我们在去年12月分享过Hosteons新上AMD Ryzen9 3900X CPU及DDR4内存、NVMe硬盘的高性能VPS产品的消息,目前商家再次发布了产品更新信息,暂停新开100M带宽KVM套餐,新订单转而升级为新的Budget KVM VPS(SSD)系列,带宽为1Gbps端口,且配置大幅升级,目前100M带宽仅保留OpenVZ架构产品可新订购,所有原有主机不变,用户一直续费一直可用。Bud...
TMThosting发布了今年黑色星期五的促销活动,即日起到12月6日,VPS主机最低55折起,独立服务器9折起,开设在西雅图机房。这是一家成立于2018年的国外主机商,主要提供VPS和独立服务器租用业务,数据中心包括美国西雅图和达拉斯,其中VPS基于KVM架构,都有提供免费的DDoS保护,支持选择Windows或者Linux操作系统。Budget HDD系列架构CPU内存硬盘流量系统价格单核51...
可以看到这次国庆萤光云搞了一个不错的折扣,香港CN2产品6.5折促销,还送50的国庆红包。萤光云是2002年创立的商家,本次国庆活动主推的是香港CN2优化的机器,其另外还有国内BGP和高防服务器。本次活动力度较大,CN2优化套餐低至20/月(需买三个月,用上折扣+代金券组合),有需求的可以看看。官方网站:https://www.lightnode.cn/地区CPU内存SSDIP带宽/流量价格备注购...