Nginx案例之防盗链

Nginx生产案例之防盗链

1.简介
	场景:
		当图片大量被其它网站链接,这是非常消耗流量的。
	原理:
		根据referers头来判断,如果是从自己网站上访问的,将显示。
		但referers很容易就可以伪造,并且如果是爬虫来下载图片,也无法防御,因为爬虫是从网站路径下载的。
	
2.配置
	在server板块中添加一个location
	
server {
    listen       80;
    server_name  localhost;
    location ~ .*\.(gif|jpg|jpeg|png|bm|swf|flv|rar|zip|gz|bz2)$ {    # 指定需要使用防盗链的媒体资源
        access_log  off;                                              # 不记录日志
        expires  15d;                                                 # 设置缓存时间
        valid_referers *.baidu.com *.google.com;                      # 表示仅允许这些域名访问上面的媒体资源
        if ($invalid_referer) {                                       # 如果域名不是上面指定的地址就返回403
            return 403;
        }
    }
	
所有来自百度,谷歌的访问将正常。而来自别的网站链接过来的,将显示一个403,也可以重定向到别的页面。
posted @ 2022-01-10 13:48  Layzer  阅读(45)  评论(0)    收藏  举报