利用Nginx限制静态页面的访问权限(防盗链、禁止爬虫)
1.限制爬虫配置
if ($http_user_agent ~* "spider|crapy|Sogou web spider|Baiduspider|Googlebot|Bingbot|360Spider|Yisouspider|Sogouspider|Yahoo! Slurp") { return 403; }
上述配置意思是,http_user_agent(对应浏览器参数User-agent)参数不区分大小写匹配到上述爬虫参数时,返回403. 该配置可以放置在server或location区域。
2. 防盗链设置
valid_referers ~\.apicloud\.; if ($invalid_referer) { return 403; }
valid_referers 是白名单, ~\.apicloud\. 是匹配到https://或http://链接中带有apicloud域名的,可以正常访问,其他则返回403.
同等效果设置:valid_referers server_names; server_names是匹配所在sever{}字段中配置的server_names值
valid_referers domain.com *.apicloud.com 是匹配指定域名的所有域名可以正常访问
valid_referers none;none:表示空的来路,比如直接访问的
valid_referers blocked 192.168.13.225 ; blocked:表示被防火墙标识过的来路, 后面的ip就是允许的名单
上述配置可以组合使用,如valid_referers none blocked 192.168.13.225 domain.com *.apicloud.com server_names ~\.apicloud\.;
@南非波波
github:https://github.com/swht