宝塔php防盗链,宝塔面板利用nginx服务设置图片防盗链规则

2024-02-20 14:30

本文主要是介绍宝塔php防盗链,宝塔面板利用nginx服务设置图片防盗链规则,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

蓝卡手上有3台ECS,最近发现1台ECS的状态不太正常,负载、流量都有些偏高,这个ECS上的站点不多,流量最大的站点1天也就3000-4000的pv,站点的图片在上传钱也经过压缩,理论上资源消耗不会这么大。

曾经遇到过被反代的,已经能解决了,被DDOS的可能性也不大,剩下最大的可能就是被盗链了,经过排查,发现了1个网站,内容基本就是采集我的站点的,甚至图片都是直接调用的,看来宝塔默认的防盗链并没有起到效果,就准备自己进行操作。

1421268860.jpg

Nginx设置防盗链的方法

下面为完整代码#SECURITY-START 防盗链配置

location ~ .*\.(jpg|jpeg|gif|png|js|css)$

{

expires      30d;

access_log off;

valid_referers none blocked www.domain.com domain.com;

if ($invalid_referer){

rewrite ^/ https://rmt.dogedoge.com/fetch/*****.jpg;

#return 404;

}

}

代码解释

location ~ .*\.(jpg|jpeg|gif|png|js|css)$

(jpg|jpeg|gif|png|js|css)设置防盗链文件类型,可以自行修改文件类型,如果你还想添加其他防盗链内容,直接添加就可以,每个后缀用“|”符号分开!

valid_referers none blocked *.domain.com domain.com;

valid_referers none blocke后面的值是允许访问图片,也就是授权调用文件的域名。

就是白名单,允许文件链出的域名白名单,自行修改成您的域名!

建议将搜索引擎的域名也加入白名单,未测试有效性。

*.baidu.com *.google.com *.bing.com *.so.com *.sogou.com *.sm.cn *.toutiao.com

域名与域名之间使用空格隔开!

rewrite ^/ https://rmt.dogedoge.com/fetch/*****.jpg;

这个图片是盗链返回的图片,也就是替换盗链网站所有盗链的图片。

如果对方盗用你的图片,会显示一个默认图片,这个急救室默认图片。

切记,这个图片不能用你的域名,因为防盗链的作用,盗链者的网站所盗链图片会显示X符号。

nginx彻底地实现真正意义上的防盗链

但是这样并不是完全的防盗链,这只要通过浏览器直接输入图片地址,仍然会显示图片,仍然可以右键图片另存为下载文件!

我们来看第三行:valid_referers none blocked *.domain.com domain.com;

valid_referers 里多了“none blocked”

我们把“none blocked”删掉,改成

valid_referers *.domain.com domain.com;

nginx彻底地实现真正意义上的防盗链完整的代码应该是这样的:location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$

{

valid_referers *.domain.com domain.com;

if ($invalid_referer) {

rewrite ^/ http://www.domain.com/images/404.jpg;

#return 404;

}

expires  30d;

}

重启nginx服务

设置完毕后,需要重启一次nginx服务让他加载防盗链规则。

LNMP的话可以使用/etc/init.d/nginx restart或者直接lnmp restart重启即可。

宝塔面板的话,在软件商店,运行环境里面找到nginx,点击,然后服务里面点击重启即可。

尾语

一顿操作后,效果已经实现,在对方网站上显示的防盗链图片还是不错的。「你访问的网站是盗版,请访问主站Domain.com」

the-end.png

这篇关于宝塔php防盗链,宝塔面板利用nginx服务设置图片防盗链规则的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/728525

相关文章

[word] word设置上标快捷键 #学习方法#其他#媒体

word设置上标快捷键 办公中,少不了使用word,这个是大家必备的软件,今天给大家分享word设置上标快捷键,希望在办公中能帮到您! 1、添加上标 在录入一些公式,或者是化学产品时,需要添加上标内容,按下快捷键Ctrl+shift++就能将需要的内容设置为上标符号。 word设置上标快捷键的方法就是以上内容了,需要的小伙伴都可以试一试呢!

JAVA读取MongoDB中的二进制图片并显示在页面上

1:Jsp页面: <td><img src="${ctx}/mongoImg/show"></td> 2:xml配置: <?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001

springboot家政服务管理平台 LW +PPT+源码+讲解

3系统的可行性研究及需求分析 3.1可行性研究 3.1.1技术可行性分析 经过大学四年的学习,已经掌握了JAVA、Mysql数据库等方面的编程技巧和方法,对于这些技术该有的软硬件配置也是齐全的,能够满足开发的需要。 本家政服务管理平台采用的是Mysql作为数据库,可以绝对地保证用户数据的安全;可以与Mysql数据库进行无缝连接。 所以,家政服务管理平台在技术上是可以实施的。 3.1

在服务器上浏览图片

@StarSky 2018-10-26 15:09 字数 15971 阅读 28 https://www.zybuluo.com/StarSky/note/1294871 来源 2018-09-27 线上服务器安装 imgcat Tool   2018-09-27 线上服务器安装 imgcat 0. 准备文件:iterm2_shell_integration.bash1. 在有权限

如何设置windows计划任务

如何设置windows计划任务 前言:在工作过程中写了一个python脚本,用于调用jira接口查询bug单数量,想要在本地定时任务执行,每天发送到钉钉群提醒,写下操作步骤用于记录。 1. 准备 Python 脚本 确保你的 Python 脚本已经保存到一个文件,比如 jira_reminder.py。 2. 创建批处理文件 为了方便任务计划程序运行 Python 脚本,创建一个批处理文

青龙面板之Ninja无法安装无法拉库问题解决

因为之前的Ninja库已经不能用了,甚至新找到的库也不能用了,好尴尬,这里使用线下版本进行安装。 ninja安装新方法,其是方法还是原来的,只不过Ninja的库原作者删了,没法直接git了,但是我找到了源码包,我们可以直接通过宝塔面板拖进去。 源码包地址: https://download.csdn.net/download/u012134073/24813485 备用地址: 链接: h

青龙面板2.9之Cdle傻妞机器人编译教程

看到有的朋友对傻妞机器人感兴趣,这里写一下傻妞机器人的编译教程。 第一步,这里以linux amd64为例,去官网下载安装go语言安装包: 第二步,输入下方指令 cd /usr/local && wget https://golang.google.cn/dl/go1.16.7.linux-amd64.tar.gz -O go1.16.7.linux-amd64.tar.gz

【青龙面板辅助】JD商品自动给好评获取京豆脚本

1.打开链接 开下面的链接进入待评价商品页面 https://club.jd.com/myJdcomments/myJdcomments.action?sort=0 2.登陆后执行脚本 登陆后,按F12键,选择console,复制粘贴以下代码,先运行脚本1,再运行脚本2 脚本1代码 可以自行修改评价内容。 var content = '材质很好,质量也不错,到货也很快物流满分,包装快递满

FastAdmin/bootstrapTable 表格中生成的按钮设置成文字

公司有个系统后台框架用的是FastAdmin,后台表格的操作栏按钮只有图标,想要设置成文字。 查资料后发现其实很简单,主需要新增“text”属性即可,如下 buttons: [{name: 'acceptcompany',title: '复核企业',text:'复核企业',classname: 'btn btn-xs btn-primary btn-dialog',icon: 'fa fa-pe

青龙面板部署通用教程,含服务器、路由器、X86等部署方法

1. 拉取镜像/更新镜像 docker pull whyour/qinglong:latest 2. 删除镜像 docker rmi whyour/qinglong:latest 3. 启动容器 普通服务器 docker run -dit \-v $PWD/ql/config:/ql/config \-v $PWD/ql/log:/ql/log \-v $PWD/ql/db: