nginx设置防盗链

  • 我们都看过有些文章中的图片,你点击一下就会跳转到其他页面,可能会提示“404”或者“403”之类的,这说明文章的图片盗用了别的网站的图片,文章只是嵌入了一个链接,而图片所在的网站采用防盗链技术。防盗链技术可以降低的服务器不必要的负载,以及版权之类的,当然,如果你的服务器群足够强大,你可以设置水印、品牌之类的标识。
  • 下面,我们来配置下nginx的防盗链:

1、nginx配置

cd /etc/nginx/conf.d

在这里插入图片描述

vi https.www.flighting.top.conf
# HTTPS redirect
server {
	listen 443 ssl;

	server_name www.flighting.top;

	# SSL
	ssl_certificate /etc/nginx/crt/test.crt;
	ssl_certificate_key /etc/nginx/crt/test.key;

	# security
	#include conf.d/include/security.conf;

	# logging
	access_log /var/log/nginx/access.log;
	error_log /var/log/nginx/error.log warn;

	# reverse proxy
	location / {
		proxy_pass http://tomcat;
		#include conf.d/include/proxy.conf;
	}
	
	location ~* ^.+\.(jpg|gif|png|swf|flv|wma|wmv|asf|mp3|mmf|zip|rar)$ {
		valid_referers none blocked  www.flighting.top;
		if ($invalid_referer) {
			#return 302  http://www.flighting.top/img/nolink.jpg;
			return 404;
			break;
		}
		access_log off;
	}

	# additional config
	#include conf.d/include/general.conf;
		
   # location / {
   #     root   /usr/share/nginx/html;
   #     index  index.html index.htm;
   # }
}

-就是基础之上加入下面配置:

location ~* ^.+\.(jpg|gif|png|swf|flv|wma|wmv|asf|mp3|mmf|zip|rar)$ {
		valid_referers none blocked  www.flighting.top;
		if ($invalid_referer) {
			#return 302  http://www.flighting.top/img/nolink.jpg;
			return 404;
			break;
		}
		access_log off;
	}
  • location ~* ^.+.(jpg|gif|png|swf|flv|wma|wmv|asf|mp3|mmf|zip|rar)$:匹配以 jpg/png/gif 结尾的文件请求
  • valid_referers: 指令用于设置允许访问资源的网站列表 (即白名单)
  • none : 匹配没有 Referer 的 HTTP 请求,如 valid_referers none
  • blocked: 匹配 HTTP 请求中含有 Referer ,但是被防火墙或者代理服务器修改,去掉了
  • 当请求的 refer 是合法的,即可以被后面任一参数所匹配, $invalid_referer 的值为0, 若不匹配则值为 1,即不合法的请求,直接返回 404
  • access_log off:不记录日志

2、测试

  • 我们来访问https://47.101.201.179,还是上次测试的页面:
    在这里插入图片描述
  • 找到一张图片:tomcat.png,在https://47.101.201.179访问是正常的
    在这里插入图片描述
  • 我们来直接访问https://47.101.201.179/tomcat.png
    在这里插入图片描述
  • 返回404,说明防盗链设置成功了
  • 关注公众号"双城人",搬砖过程遇到的问题,大家一起探讨,资源共享在这里插入图片描述
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值