大家在查看分析网站访问日志的时候,很可能发现自己网站里面的很多图片被外部网站引用,这样给我们自己的博客带来了最少两点的不好:(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"请求头.
spinservers怎么样?spinservers大硬盘服务器。Spinservers刚刚在美国圣何塞机房补货120台独立服务器,CPU都是双E5系列,64-512GB DDR4内存,超大SSD或NVMe存储,数量有限,机器都是预部署好的,下单即可上架,无需人工干预,有需要的朋友抓紧下单哦。Spinservers是Majestic Hosting Solutions,LLC旗下站点,主营美国独立...
ucloud美国云服务器怎么样?ucloud是国内知名云计算品牌服务商家,目前推出全球多地机房的海外云服务器。UCloud主打的优势是海外多机房,目前正在进行的2021全球大促活动参与促销的云服务器机房就多达18个。UCloud新一代旗舰产品快杰云服务器已上线洛杉矶节点,覆盖北美和亚太地区,火热促销中, 首月低至7元,轻松体验具备优秀性能与极高性价比的快杰云服务器。点击进入:ucloud美国洛杉矶...
我们一般的站长或者企业服务器配置WEB环境会用到免费版本的宝塔面板。但是如果我们需要较多的付费插件扩展,或者是有需要企业功能应用的,短期来说我们可能选择按件按月付费的比较好,但是如果我们长期使用的话,有些网友认为选择宝塔面板企业版或者专业版是比较划算的。这样在年中大促618的时候,我们也可以看到宝塔面板也有发布促销活动。企业版年付899元,专业版永久授权1888元起步。对于有需要的网友来说,还是值...