首先准备两个虚机 以我的本机虚机两个网页站点为例 (A站点 wordpress 博客 ,B站点 Discuzx 论坛)

wordpress 安装参考链接:https://blog.51cto.com/u_15148274/5411725

Discuzx 安装参考链接:https://blog.51cto.com/u_15148274/5413871

以我自己虚机配置文件路径为例

yum -y install lrzsz   安装rz上传图片工具
cd /data/www/blog.centos.cc    进入到 A站点虚机安装路径下
rz    执行    根据提示上传图片到A站点虚机安装路径下 
(rz 跟 文件名 可以将linux上的文件下载到windows上)
如图所示!

image.png

网页浏览A站点图片地址并复制图片链接
image.png
登入B站点随便发个帖子 将复制A站点图片的地址复制上去既可以看到如图所示!
image.png
image.png

配置防盗链

打开虚拟主机配置文件加入图中红框中的内容 如图

vim /etc/nginx/conf.d/blog.centos.cc.conf    (我自己虚机的路径)
加入图中红色框中内容
    location ~ \.(png|gif|jpeg|bmp|mp3|mp4|flv)$
    {
        valid_referers none blocked server_names *.a.com;
        if ($invalid_referer) {
                return 403;
        }
        expires 1d;
        access_log off;
    }

image.png

valid_referers   #表示白名单,指哪个网站可以引用图片,把他写在server_names 后面
none             #表示空referer
blocked          #表示非法的链接,正常的指以http或者https 为头的域名,以类似别的比如www. bbs、、等等的加上blocked也可以访问,不加的话只能以http或者https 为头的域名才可以访问
server_names     #表示主机域名地址所定义的server_names(域名名称)

加入之后重载配置文件

nginx -t
nginx -s reload

然后刷新网页查看即可看到盗用复制A站点的图片在B站点中无法显示
image.png
也可以在网页按 f12 刷新查看 如图!
image.png

测试防盗链:
curl -x127.0.0.1:80 -I -e "http://www.asdasdasd.com/1.txt" http://www.a.com/1.png
curl的-e指定自定义的referer

ps: 如果页面刷新没反应, 关掉浏览器或者换个浏览器登入刷新查看。